Anmelden

View Full Version : SQL: Warum ist Update wesentlich langsamer als select?



hs
20-11-03, 07:14
Hallo,

ich habe eine AS400-Datei mit Index auf Feld A, Feld B

Gebe ich ein :

SELECT * FROM DATEI WHERE FELDA = 'X' and FELDB = 1

dann bekomme ich sofort eine Anzeige am Bildschirm


Aber ein UPDATE

UPDATE DATEI SET FELDC = 2 WHERE FELDA = 'X' and FELDB = 1

dauert eine halbe Minute!

Könnte dies daran liegen, dass die Datei mehrere log. Dateien hat?

Kann ich den Vorgang irgendwie beschleunigen?

Danke für eure Antworten
HS

Fuerchau
20-11-03, 07:49
Starte mal vor dem STRSQL den STRDBG UPDPROD(*YES), führe dann den Update durch und schau ins Joblog, woran das liegen könnte.

Die Anzahl der LF's spielt zwar eine Rolle, bedeutet aber nur, dass vielleicht nur 100 Updates pro Sekunde gehen statt 1000.

hs
20-11-03, 09:13
Hallo H. Fuerchau,

erstmal vielen Dank für die Info.

Habe mal DEBUG laufen lassen, jetzt steht im Jobprotokoll:

CONNECT für relationale Datenbank *N abgeschlossen.
Aktuelle Verbindung besteht zur relationalen Datenbank *N.
Aktuelle Verbindung besteht zur relationalen Datenbank *N.
Auswahlfelder anderen Attributen zugeordnet.
Alle Zugriffspfade wurden für Datei xxx berücksichtigt.
Zugriff nach Eingangsfolge für Datei xx verwendet.
Empfohlener Zugriffspfad für Datei xxx.
ODP erstellt.
Datenumsetzung für Anweisung INSERT oder UPDATE erforderlich.
Offener Datenpfad (ODP) gelöscht.
1 Zeilen in xxx in WWBD000 aktualisiert.
Verbindung zur relationalen Datenbank *N beendet.
SQL-Cursor geschlossen.


Was sagt mir das jetzt?

Vielleicht noch zur Info: Betriebssystem V3.7

Gruß
HS

Fuerchau
20-11-03, 10:40
Auf jeder Nachricht kannst du mit F1 nachschauen, warum diese gekommen ist (die Verbindungsnachrichten sind uninteressant).

Im wesentlichen sind das:

Alle Zugriffspfade wurden für Datei xxx berücksichtigt.
Zugriff nach Eingangsfolge für Datei xx verwendet.
Empfohlener Zugriffspfad für Datei xxx.

und

Datenumsetzung für Anweisung INSERT oder UPDATE erforderlich.

Am schnellsten gehts natürlich, wenn der Zugriffspfad da ist und keine Umsetzung erforderlich ist.