Fuerchau
14-04-21, 12:19
Wenn man wiederholbare SQL's mit Parametermarkern ausführt, gerade bei Update/Inserts werden nur noch Daten statt Statements übertragen.
Aktuelle bin ich gerade bei einer ETL-Optimierung.
Da wird aus einer AS/400-DB mit 240Mio. Zeilen eine Select mit Ergebnis 65Mio Zeilen in einen SQL-Server gschoben. Dies dauert ca. 1 Stunde, macht 18.000 Inserts/Sekunde.
Da dies zu lange dauert, hat man bei einer "Analyse" festgestellt:
- Der SQL-Server hat fast nichts zu tun und wartet auf die AS/400
- Die AS/400-QZDASOINIT-Jobs stehen fast nur auf TIMW, warten also auf Anforderungen vom SQL-Server.
Ich habe da nun ein C#-Programm gemacht, dass diese 65Mio. Zeilen mit ca. 98.000 Zeilen/Sekunde abholt. Somit wäre ich nach knapp 11 Minuten fertig mit dem Download.
Antwort von der Microsoft-Truppe:
Ich weiß nicht was sie da machen und kann das nicht verifizieren. Unsere Seite hat ein Microsoft-Spezialist untersucht und keine Beanstandungen gefunden. Folglich muss es an der Bereitstellung der AS/400 liegen!
Das ist nun Fakt, also machen Sie die AS/400 schneller.
Was soll ich denn schneller machen, wenn das ETL-Programm (SSIS) einfach nicht schneller kann?
Ich bin schon am überlegen, ob man nicht eine CSV auf der AS/400 erstellt (geht ja fix) und dann mit 1GBit auf den Windows-Server schiebt. Dann können die vielleicht einen BulkLoad mit SSIS machen und in Summe wäre das vielleicht noch schneller.
Denn mit meinem C#.Progrämmchen rufe ich auch den Bulkload auf und konnte auf meinem langsamen Laptop bereits 23.000 Zeilen/Sekunde importieren. Was muss da wohl ein SQL-Server mit BulkLoad schaffen...
Aber ein SQl-Server zum Beweis wird nicht zur Verfügung gestellt.
Noch ein Nachsatz: Wir haben das Problem bereits seit 1,5 Jahren und seitens IBM ist keine Verbesserung eingetreten.
Ich kann da nur sagen: Eindeutig (mal wieder) ein massives Problem vor dem Bildchirm.
Aktuelle bin ich gerade bei einer ETL-Optimierung.
Da wird aus einer AS/400-DB mit 240Mio. Zeilen eine Select mit Ergebnis 65Mio Zeilen in einen SQL-Server gschoben. Dies dauert ca. 1 Stunde, macht 18.000 Inserts/Sekunde.
Da dies zu lange dauert, hat man bei einer "Analyse" festgestellt:
- Der SQL-Server hat fast nichts zu tun und wartet auf die AS/400
- Die AS/400-QZDASOINIT-Jobs stehen fast nur auf TIMW, warten also auf Anforderungen vom SQL-Server.
Ich habe da nun ein C#-Programm gemacht, dass diese 65Mio. Zeilen mit ca. 98.000 Zeilen/Sekunde abholt. Somit wäre ich nach knapp 11 Minuten fertig mit dem Download.
Antwort von der Microsoft-Truppe:
Ich weiß nicht was sie da machen und kann das nicht verifizieren. Unsere Seite hat ein Microsoft-Spezialist untersucht und keine Beanstandungen gefunden. Folglich muss es an der Bereitstellung der AS/400 liegen!
Das ist nun Fakt, also machen Sie die AS/400 schneller.
Was soll ich denn schneller machen, wenn das ETL-Programm (SSIS) einfach nicht schneller kann?
Ich bin schon am überlegen, ob man nicht eine CSV auf der AS/400 erstellt (geht ja fix) und dann mit 1GBit auf den Windows-Server schiebt. Dann können die vielleicht einen BulkLoad mit SSIS machen und in Summe wäre das vielleicht noch schneller.
Denn mit meinem C#.Progrämmchen rufe ich auch den Bulkload auf und konnte auf meinem langsamen Laptop bereits 23.000 Zeilen/Sekunde importieren. Was muss da wohl ein SQL-Server mit BulkLoad schaffen...
Aber ein SQl-Server zum Beweis wird nicht zur Verfügung gestellt.
Noch ein Nachsatz: Wir haben das Problem bereits seit 1,5 Jahren und seitens IBM ist keine Verbesserung eingetreten.
Ich kann da nur sagen: Eindeutig (mal wieder) ein massives Problem vor dem Bildchirm.