Die Suche ergab 271 Treffer

von bfuerchau
So 18. Apr 2021, 17:42
Forum: Praxiseinsatz
Thema: Bulk Load
Antworten: 7
Zugriffe: 105

Re: Bulk Load

Alle Versuche einen dynmaschin BulkCopy durchzuführen scheitert an divesen Fehlermeldungen der Firebird. Die entsprechenden Beispiele die man so findet, gehen immer von einem Textblock mit eingebetteten Werten statt Parametermarkern aus. Also einen Execute Block as begin insert into mytable values('...
von bfuerchau
So 18. Apr 2021, 12:26
Forum: Praxiseinsatz
Thema: Temporäres Sperren von Triggern
Antworten: 3
Zugriffe: 35

Re: Temporäres Sperren von Triggern

Nun ja, in unserer BI-Lösung wird sehr viel zur Laufzeit mit dynamischem DDL gearbeitet. Dies geht nun mal ausschließlich auf diesem Weg. Zusätzlich benötige ich da noch eine Sperrlösung, weil 2 DDL's gleichzeitg häufig zum DB-Crash führen. Aber das erledige ich mit einem "Select * from MyTable for ...
von bfuerchau
So 18. Apr 2021, 12:20
Forum: Praxiseinsatz
Thema: Bulk Load
Antworten: 7
Zugriffe: 105

Re: Bulk Load

Auf 255 inserts komme ich ja noch nicht mal. a) komme ich da über 64 KB b) arbeite ich mit Parameter-Markern und da ist eine Pufferlänge beschränkt. Leider finde ich dazu keine Berechungsmethode. Außerdem wird eine global temorary table gar nicht in die DB geschrieben sondern in den Temp-Ordner, und...
von bfuerchau
Sa 17. Apr 2021, 19:52
Forum: Praxiseinsatz
Thema: Temporäres Sperren von Triggern
Antworten: 3
Zugriffe: 35

Re: Temporäres Sperren von Triggern

Bestimmet DDL's kann man nur per dynamischem SQL erledig.
https://firebirdsql.org/refdocs/langref ... cstat.html
Das schöne ist, DDL per Execute unerliegt meist keiner Einschränkung.
Allerdings muss für die Änderung von Table-Metadaten die Tabelle exclusiv im Zugriff sein.
von bfuerchau
Do 15. Apr 2021, 17:02
Forum: Praxiseinsatz
Thema: Bulk Load
Antworten: 7
Zugriffe: 105

Re: Bulk Load

Nachtrag und neueste Erkenntnisse: Die Performancc hängt schon wesentlich von der Anzahl Spalten und somit auch von der Anzahl Parameter ab. Dabei bin ich allerdings auf ein Limit gekommen: Eine Prozedur/Block darf bis 64KB sein. Die Summe der Parameterfelder darf die aktuelle Zeilenlänge (64K) aber...
von bfuerchau
Mi 14. Apr 2021, 19:28
Forum: Praxiseinsatz
Thema: Bulk Load
Antworten: 7
Zugriffe: 105

Re: Bulk Load

So, nun habe ich nach den obigen Prinzipien einen Execute Block generiet (62 KB) und es hat im Prinzip keinen Vorteil gebracht. Durch die lange Syntax (Parameter Definition, Insert-Befehle) habe ich mit z.B. 72 Spalten nur 16 Inserts zusammen gebastelt. Grundsätzlich funktioniert es, allerdings komm...
von bfuerchau
Di 13. Apr 2021, 22:47
Forum: Praxiseinsatz
Thema: Bulk Load
Antworten: 7
Zugriffe: 105

Re: Bulk Load

Allerdings muss man auch die andere Seite sehen, denn das Ausgeben von Daten erst in CSV dauert auch ebenso lange. Zusätzlich muss man dann noch berücksichtigen, dass - NULL's nicht übermittelbar sind - Codierungsschwierigkeiten auftreten (Datumsformat, Decimalpoint, u.ä.) - Text/Binär-Blobs auf die...
von bfuerchau
Di 13. Apr 2021, 09:09
Forum: Ankündigungen
Thema: Firebird Performance Newsletter: Ausgabe 1
Antworten: 8
Zugriffe: 237

Re: Firebird Performance Newsletter: Ausgabe 1

Da du ja Moderator bist, könntest du die Beiträge außer dem Ersten einfach in einen neuen Thread verschieben?
Ich möchte dann auf deine letzte Antwort noch etwas dazu sagen.
von bfuerchau
Mo 12. Apr 2021, 22:07
Forum: Ankündigungen
Thema: Firebird Performance Newsletter: Ausgabe 1
Antworten: 8
Zugriffe: 237

Re: Firebird Performance Newsletter: Ausgabe 1

Nun, mit den von mir entwickelten und mit .Net unterstützten Verfahren konnte ich eine DB-Kopie, die ich mal für Notfälle erstellt hatte, um den Faktor 2,5 beschleunigen. Die Kopie ist dann eforderlich, wenn gback auch nach gfix einfach scheitert. Die reinen Datentabellen lassen sich dann immer noch...
von bfuerchau
Mo 12. Apr 2021, 12:09
Forum: Ankündigungen
Thema: Firebird Performance Newsletter: Ausgabe 1
Antworten: 8
Zugriffe: 237

Re: Firebird Performance Newsletter: Ausgabe 1

Ja, einen Bulkload vesuche ich derzeit schon. Da ist der SQL-Server leider viel weiter, da in .Net eine eigene Klasse SqlBulkCopy angeboten wird. Meine Tests laufen im Moment ganz gut. Je nach Spaltenanzahl und Feldlängen varieirt dies derzeit zwischen 2.500 bis 8000 Inserts/Sekunde. Der SQL-Selver ...