Einzelnen Beitrag anzeigen

Benutzerbild von DelphiBandit
DelphiBandit

Registriert seit: 19. Feb 2007
Ort: In der Lüneburger Heide
165 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: Insert optimieren

  Alt 16. Sep 2010, 16:04
Habe mir die Beispiele gerade mal angesehen - das dritte und Schnellste wird unter FB nicht funktionieren, da er keine Multi-Valueliste unterstützt
Zitat:
Unfortunately neither SQLServer nor Firebird support multiple rows in the values part of an insert. I know they can use some sort of union clause to do something similar, but performance is not better.So, let’s try with MySql
Und von den beiden davor aufgezählten ist das mit den Parametern (das mittlere) schneller, als wie jetzt mit Einzel-SQL's zu arbeiten.

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.
Carsten

Geändert von DelphiBandit (16. Sep 2010 um 16:11 Uhr)
  Mit Zitat antworten Zitat