![]() |
AW: Insert optimieren
Zitat:
Zitat:
|
AW: Insert optimieren
Eine paramterisierte Variante sollte aber der erweiterten Syntax in nichts nachstehen
|
AW: Insert optimieren
Naja im moment würde es mir ja schon helfen wenn ich das Problem mit dem token in den Griff bekommen würde :D
|
AW: Insert optimieren
Zitat:
Dort gibt es 1* die INSERT-Anweisung und x* die Values-Anweisungen. Du baust jeweils komplett die INSERT + Values zusammen. Ach ja: Wenn du werte direkt im String verwendest: Quotion nicht vergessen! SQL-Injection lassen grüßen! |
AW: Insert optimieren
Selbes Problem nur diesmal:
Unkown toke line 3 column 1, VALUES |
AW: Insert optimieren
Zitat:
Im Beispiel: Wie oft siehst du da das abschließende ";"? Und wie oft ist es in deinem zusammen gebauten SQL-String? |
AW: Insert optimieren
Im Beispiel von shima is es garnicht drin, und ich habs bei mir im neuen code auch rausgenommen.
Edit:
Delphi-Quellcode:
list.Add('INSERT INTO Messwerte (ID_mess, Millisec, Messwert_Links, Messwert_Rechts)');
for zt := 0 to round(Frm_Messung.Ch_Messung.BottomAxis.Maximum) do begin (*Params[0].AsInteger := tId; Params[1].AsInteger := zt; Params[2].AsFloat := arr_messwerte[tdim, zt, 0]; Params[3].AsFloat := arr_messwerte[tdim, zt, 1]; ExecSQL;*) List.Add(' VALUES (' + InttoStr(tid) + ', ' + InttoStr(zt) +', ' + FloattoStr(arr_messwerte[tdim, zt, 0]) + ', '+ FloattoStr(arr_messwerte[tdim, zt, 1]) + ' )'); frm_messung.pb_db.Position := frm_messung.pb_db.Position +1; end; |
AW: Insert optimieren
Habe mir die Beispiele gerade mal angesehen - das dritte und Schnellste wird unter FB nicht funktionieren, da er keine Multi-Valueliste unterstützt
Zitat:
Hab @work leider keine Zeos installiert, aber müsste man für die Konstrukte mit mehreren SQL-Statements nicht so eine Art Script/Batch-SQL hernehmen? Zwei Sachen die mir noch einfallen, um es ggf. ein wenig zu beschleunigen 1) Eine Stored-Procedure innerhalb der Datenbank anlegen und deren Parameter füllen und dann diese ausführen. So kann man sich garantiert drauf verlassen, dass die in jedem Fall prepared ist. 2) Externe Text-Tabelle anlegen und die Daten dort hinein inserten, die hält der Server bei 30.000 Werten bestimmt noch im Cache. Anschliessend auf die richtige Tabelle einen einzelnen INSERT mit VALUES (SELECT FROM TextTabelle) absetzen. Wenn man die externe Tabelle dann noch auf eine RAM-Disk legt, kriegt der FB-Prozess mal richtig Last. |
AW: Insert optimieren
Hallo,
die Sache mit der externen Tabellen wollte ich auch gerade vorschlagen ... Aber noch mal zum Prepare. Das macht ZEOS selber (musste mich mal mit den Quellen rumschlagen). Heiko |
AW: Insert optimieren
FireBird prepared zudem beim 1. Zugriff auf eine parametrisierte Abfrage
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 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