SQLite Leistungstest
Posted on: 30. April 2019Alle Infos die du brauchst um das Video erfolgreich umzusetzen:
Heute setzen wir SQLite unter Druck, oder versuchen es zumindest.
Dafür werden 2000 Einträge in eine Spalte geschrieben:
1x ohne Transaktion
1x mit Transaktion
Wir sind offen und gespannt auf deine Anregungen: Input-Formular
Am einfachsten schaust du das Video und hast dazu diesen Code offen. So kannst du auch den Code in deiner gewünschten Grösse darstellen und kannst dem Video einfacher folgen.
——————————————–
add-type -Path "C:\Users\username\Desktop\sqlite-netFx46-binary-x64-2015-1.0.109.0\System.Data.SQLite.dll" $verbindungsstring = "data source=c:\users\username\desktop\testdb.db" # Verbindungsstring aufbauen $verbindungsobj = New-Object -TypeName System.Data.SQLite.SQLiteConnection # Verbindungs-Objekt erstellen $verbindungsobj.ConnectionString = $verbindungsstring # Verbindungsstring dem Verbindungs-Objekt mitgeben $verbindungsobj.Open() # Verbindung aufbauen function invoke-sqliteeinfuegen ($sqlitebefehleinfuegen, $wert){ # Funktion mit 2 Parametern erstellen $befehlobj = $verbindungsobj.CreateCommand() # Befehls-Objekt erstellen mit Methode Create-Command $befehlobj.CommandText = $sqlitebefehleinfuegen # Query mitgeben zu Befehlsobjekt $befehlobj.Parameters.AddWithValue("@name", $wert) # Parameterwerte mitgeben (Spalte angeben & Wert) für Query $befehlobj.ExecuteNonQuery() # Query ausführen } # Query erstellen $sqlitebefehleinfuegen = "insert into testimesti (name) values (@name) " # Zeitliches Messen der Ausführungsdauer $startzeit = get-date for($i=0;$i -lt 2000;$i++){ invoke-sqliteeinfuegen -sqlitebefehleinfuegen $sqlitebefehleinfuegen -wert "test $($i)" # Funktion aufrufen } $endzeit = new-timespan -start $startzeit -end (get-date) #drucktest 2 $tract = $verbindungsobj.BeginTransaction() # Transaktion starten $befehlobj = $verbindungsobj.CreateCommand() function invoke-sqliteeinfuegen ($sqlitebefehleinfuegen, $wert){ # Funktion erstellen $befehlobj.Transaction = $tract # Transaktionsobjekt erstellen $befehlobj.CommandText = $sqlitebefehleinfuegen $befehlobj.Parameters.AddWithValue("@name", $wert) $befehlobj.ExecuteNonQuery() } $sqlitebefehleinfuegen = "insert into testimesti (name) values (@name) " $startzeit = get-date for($i=0;$i -lt 2000;$i++){ invoke-sqliteeinfuegen -sqlitebefehleinfuegen $sqlitebefehleinfuegen -wert "test $($i)" | Out-Null # Funktion aufrufen & nichts ausgeben (beschleunigt den Prozess) } $endzeit = new-timespan -start $startzeit -end (get-date) $befehlobj.Transaction.Commit() # Transaktion übergeben $verbindungsobj.Dispose() # Verbindung trennen $befehlobj.Dispose() # Befehl trennen
——————————————–
Hat dir das Video gefallen und etwas gebracht, dann freuen wir uns immer auf dein Feedback. Daumen nach oben, Kommentar und Abo sind geeignete Mittel um das auszudrücken. Falls du kannst, mache doch auch deine Kollegen auf unseren Kanal aufmerksam. Denn so wachsen wir zusammen stetig weiter und das freut uns alle. Win-Win-Win.
Falls du spezielle Anforderungen an Scripts oder Auftragsarbeiten hast, kannst du mich gerne direkt per Email erreichen. Alle Infos dazu sind hier Kontakt
Ich hoffe du verstehst, dass ich nur Videos zu Themen machen kann, die ein grösseres Interesse von verschiedenen Leuten haben. Benutzerspezifische Scripts erstelle ich ausschliesslich als Auftragsarbeiten oder im Mandat.
Da wir sämtliche Videos kostenlos zur Verfügung stellen und auch keine Werbung reinpacken, sind wir immer froh für eine kleine Spende. Vielen Dank bereits dafür.