Synchrone IOs bei Unload-Utility?
- Dieses Thema hat 6 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 16 Jahre, 7 Monaten von
Anonym.
-
AuthorPosts
-
23. Februar 2007 um 7:07 Uhr #2762
AnonymInaktivHallo,
beim Lauf eines Unload-Utilities konnte ich synchrone IOs beobachten. Das wundert mich, da ich bisher davon ausgegangen bin, das Unload einfach alle Pages eines Tablespaces scant und die IOs per Prefetch asynchon durchgeführt werden.
Hier ein Auszug aus PE:
                In Appl     In DB2   Outside DB2
Elapsed time . . . . . . : Â 2:23.612442 Â Â 2:15.478445 Â Â Â 8.133997
CPU time . . . . . . . . : Â Â 58.320253 Â Â Â 52.033459 Â Â Â 6.286794
 TCB  . . . . . . . . . :   58.320253    52.033459    6.286794
 TCB – Stored Proc  . . :   0.000000    0.000000       Â
 Parallel tasks . . . . :   0.000000    0.000000       Â
Waiting time . . . . . . : Â Â Â Â Â N/A Â Â 1:23.444986 Â Â Â Â Â Â Â
Suspension time  . . . . :      N/A   1:05.840716       Â
 TCB  . . . . . . . . . :      N/A   1:05.840716       Â
 Parallel tasks . . . . :      N/A    0.000000       Â
Not accounted  . . . . . :      N/A    17.604270       Â
                         Time      Event
Suspensions (Class 3) . . . . . . . . . : Â 1:05.840716 Â Â Â Â Â 66742 Â
 Locks and latches . . . . . . . . . . :   0.077784       588
 Synchronous I/O . . . . . . . . . . . :  1:03.853670      65730Hat jemand eine Idee wie es zu den synchronen IOs kommt? Vielleicht durch relocated Rows? Aber die müssten ja eingentlich nicht asynchron gelesen werden.
MfG Rolf
23. Februar 2007 um 7:19 Uhr #3153
AnonymInaktivHallo Rolf,
was machst Du genau mit dem UNLOAD Utility ?
UNLOAD DATA FROM TABLE  oder UNLOAD TABLESPACE ( oder UNLOAD FROMCOPY  😉 )  mit oder ohne WHEN – Bedingung ?Ob die synchronen I/Os durch relocated rows passieren, kannst Du leicht überprüfen. Mach einen REORG direkt vor dem Unload, sind die synchronen I/Os dann immer noch da, liegts nicht an relocated rows Â
Grüsse
Uli
23. Februar 2007 um 8:12 Uhr #3417
AnonymInaktivHallo!
Ich hoffe, ich darf mich hier mal kurz mit einer Querfrage einklincken …Kann mir jmd. erklären, was sysnchrone I/Os und asynchrone I/Os sind?
Und was die ELAPSED TIME ist?Danke!
Gruß
dobo23. Februar 2007 um 8:14 Uhr #3583
AnonymInaktivHallo Uli,
sry, hier das Unload-Statement:
LISTDEF TABLIST INCLUDE TABLE SWMT.VAR
TEMPLATE REC DSN DBA.SWM.&DB..&TS..DATA
TEMPLATE PUNCH DSN DBA.SWM.&DB..&TS..CARD
UNLOAD LIST TABLIST UNLDDN REC PUNCHDDN PUNCH
Die Möglichkeit mit dem Reorg sehe ich genauso, die Table ist allerdings in Produktion und deshalb ist ein Reorg da nicht so einfach möglich.
MfG Rolf
23. Februar 2007 um 8:48 Uhr #3704
AnonymInaktiv@ dobo:
synchrone I/Os werden einzeln angestossen und DB2 wartet auf das Ergebnis, bevor es weiterarbeiten kann
so nach dem Motto: ich brauche page 1234 – gib mir mal, ich warte solange… OK – hier hast du … danke jetzt kann ich weitermachenbei asynchronen I/Os muss DB2 nicht warten und hier wird ein ganzer Schwung pages auf einmal gelesen
so nach dem Motto: ich brauche die Pages 1234-1278. Hol schon mal, ich bearbeite während dessen noch page 1232 und 1233elapsed time: die verstrichene Zeit zwischen zwei Ereignissen ( hier zwischen Start und Ende des Utilities )
Â
@ Rolfmach mal RUNSTATS und schau Dir die Werte FARINDREF / NEARINDREF an. Das ist ein Anhaltspunkt, wieviele pages relocated sind.
Kannst du ( z.B. über die Bufferpools ) feststellen, ob Indices angesprochen werden
ich nehme an, Â die Table liegt in einem partitioned Tablespace und ist die einzige Tabelle drin ?
23. Februar 2007 um 11:58 Uhr #3785
AnonymInaktivHallo Uli,
der Tablespace ist segmented und es liegt nur die eine Table darin. Runstats wurde noch am 18.02.2007 durchgeführt. Bei ca. 60 Mio. Rows ist FARINDREF ca. 2 Mio und NEARINDREF ca. 1 Mio..
Der Index-Bufferpool wurde nicht angesprochen.
Ich komme zwar bei den synchronen Reads nicht auf die Summe der relocated Rows, aber da ist ja auch noch ein Bufferpool dazwischen.
Ich vermute aber auch, das wenn auf einer Page RIDs auf andere Pages zeigen, diese dann erst synchron gelesen werden. Vermutlich ist das im DBM so integriert, obwohl es für das Unload-Utility eigentlich nicht notwendig wäre.MfG Rolf
23. Februar 2007 um 13:48 Uhr #3839
AnonymInaktivHigh Rolf,
eine row kann durchaus mehrfach relocated sein ( wenn sie länger und länger und länger wird ).
Wenn nur eine Tabelle im TS drin ist, dann kannst Du doch eigentlich auch einen UNLOAD TABLESPACE machen.
Mach doch mal in der LISTDEF-Anweisung INCLUDE TABLESPACE tsname statt INCLUDE TABLE tbname.
Wäre interessant zu wissen, ob die syncI/Os dann weg sind.Ist der Tablespace eigentlich mit COMPRESS=YES definiert ( ich kann mir allerdings nicht vorstellen, dass DB2 synchron immer das compression dictionary liest … )
-
AuthorPosts
You must be logged in to reply to this topic.