![]() |
Datenbank: SQlite • Zugriff über: sqlitewrap
Zugriff auf SQlite extrem langsam
Hi DP'ler,
ich habe angefangen rudimentäre Tests für ein neues Tool durchzuführen. Folgende Vorgaben muss ich einhalten: 1.) Das Tool soll voll Datenbankunterstützt laufen. 2.) Die Schnittstelle zur Datenbank soll pur auf SQL basieren. (Rückgabe durch dynamische Arrays.) Bei mir stellt sich jetzt, in Bezug auf SQlite, folgendes Problem: Wir benutzen sehr viele einfache Parameterfenster. Beim öffnen der Fenster hole ich die Daten aus der Datenbank und weisse diese den entsprechenden Feldern (Tedit, Combobox usw) zu. Das geschieht alles automatisch und funktioniert ohne Probleme. Beim verlassen der Fenster muss dieser Vorgang umgekehrt laufen. Dort gibt es massive Performanceprobleme. Das Updaten dauert für ca 50 Editfelder oder Komboboxen um die 10 Sekunden.
Delphi-Quellcode:
Vielleicht hat irgendjemand eine Idee wie man das Ganze etwas beschleunigen kann.
if li='' then li:='empty';
SQL:='select * from Parameters where NAME = '+chr(39)+name+chr(39); tab := db.GetTable(sql); If tab.FieldAsString(1)<>li then begin SQL:='update Parameters set VALUE = '+chr(39)+li+chr(39)+' where NAME = '+chr(39)+name+chr(39); try DB.ExecSQL(SQL); main_form.memo1.lines.Add('update'); except SQL:='insert into Parameters (NAME,VALUE) values ('+chr(39)+name+chr(39)+','+chr(39)+li+chr(39)+')'; DB.ExecSQL(SQL); main_form.memo1.lines.Add('insert'); end; end; Die memo-einträge habe ich nur zum Testen im Code! |
Re: Zugriff auf SQlite extrem langsam
Verwende prepared Statements.
Sollte auch bei SQLite einiges bringen. |
Re: Zugriff auf SQlite extrem langsam
Auch wenn das jetzt nicht 100% zum Thema passt, aber auf Sachen wie
Delphi-Quellcode:
würde ich, soweit es geht, versuchen zu verzichten. Ein Feld über seinen Index anzusprechen kann schnell zu Problemen führen, sobald sich die Struktur der Tabelle oder die Reiehnfolge der Felder im Select ändert.
If tab.FieldAsString(1)<>li then
|
Re: Zugriff auf SQlite extrem langsam
Zitat:
Martin |
Re: Zugriff auf SQlite extrem langsam
Hi mse1,
wenn du mir jetzt noch erklärst wie man das bei SQlite macht bin ich glücklich! Grüsse Rainer |
Re: Zugriff auf SQlite extrem langsam
Hi mse1,
ich glaube ich habs kapiert: mit Start(....) und commit(...) Grüsse Rainer |
Re: Zugriff auf SQlite extrem langsam
Kann SQLite keine parametisierte SQL-Statements? Würde die Darstellung deutlich schöner machen
|
Re: Zugriff auf SQlite extrem langsam
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz