PDA

View Full Version : SQL Update auf Tabelle mit Blob Field sehr langsam



Paul Monzer
25-06-21, 14:23
Hallo zusammen,

wir haben eine AS400 SQL-Tabelle mit einem Blob Field in dem PDF's gespeichert werden.
Diese Tabelle hat 6601 Sätze bei einer Satzlänge von 453 Byte und ist mittlerweile auf 27GB angewachsen.

Ein SQL-Update Statment ( nicht das Blob Feld ) mit dieser Tabelle dauert sehr lange.
Entfernt man das Blob Feld aus der Tabelle und setzt das selbe SQL-Statment ab geht es blitzschnell.

Hat hier jemand eine Idee warum der SQL-Update auf eine Tabelle mit Blob Field so lange dauert und was man evtl. ändern kann?

Vorab schon vielen Dank
mit freundlichem Gruß
Paul

BenderD
25-06-21, 14:30
... du hast die Lösung doch schon gefunden: das BLOB Feld raus! Ich würde das Plopp-Feld als Streamfile im ifs speichern und einen link in der Table speichern. Wenn unbedingt jeder Firlefanz, den es gibt, verwendet werden muss, dann würde ich denn Plopp-Kram in einer seperaten Tabelle speichern und den primary key dieser Tabelle als foreign key in deine Tabelle übernehmen.

D*B

Fuerchau
25-06-21, 16:13
Das Problem ist da dann wohl eine Journalisierung.
Das Blobfeld wird dann ebenso im Before-/Afterimage gespeichert und bläht dann Journale auf.
IFS ist u.U. schlecht. Man kann das als Datalink definieren, dann unterliegen die IFS-Dateien ebenso unter Commit-Steuerung und können nicht einfach gelöscht werden.
Allerdings ist eine BLOB-Table (Identity + BLOB) da dann die bessere Lösung.

Paul Monzer
25-06-21, 16:50
..ich hatte es befürchtet, das sieht danach aus, das ich das Blob Feld in eine eigene Tabelle auslagern muss.
Vielen Dank für Eure Hilfestellung

Fuerchau
25-06-21, 18:03
Ich sehe das nun nicht als Befürchtung an.
Mittels Insteadoff-Triggern lassen sich Tabellen komplett restrukturieren ohne das Programme das bemerken, da sie nur auf Views arbeiten, denn Insteadoff-Trigger gehen auch auf Views.