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.