Veröffentlicht 11. März 201114 j Hey, wie bestimme ich die dauer eines Statements das gerade auf der Datenbank ausgeführt wird? Die SQL_ID und sql_CHILD_NUMBER des Statemtns liegen vor... help plz lg
11. März 201114 j Hi, probiers mal hier: SQL> descr v$session_longops; Name Null? Typ ----------------------------------------- -------- ---------------------------- SID NUMBER SERIAL# NUMBER OPNAME VARCHAR2(64) TARGET VARCHAR2(64) TARGET_DESC VARCHAR2(32) SOFAR NUMBER TOTALWORK NUMBER UNITS VARCHAR2(32) START_TIME DATE LAST_UPDATE_TIME DATE TIMESTAMP DATE TIME_REMAINING NUMBER ELAPSED_SECONDS NUMBER CONTEXT NUMBER MESSAGE VARCHAR2(512) USERNAME VARCHAR2(30) SQL_ADDRESS RAW(8) SQL_HASH_VALUE NUMBER SQL_ID VARCHAR2(13) SQL_PLAN_HASH_VALUE NUMBER SQL_EXEC_START DATE SQL_EXEC_ID NUMBER SQL_PLAN_LINE_ID NUMBER SQL_PLAN_OPERATION VARCHAR2(30) SQL_PLAN_OPTIONS VARCHAR2(30) QCSID NUMBER SQL>
11. März 201114 j Autor Ah super, viele dank für die Antwort! Eine Frage noch: Ab wann gelten Prozesse als Langzeitproz./Langzeitops. ? lg
11. März 201114 j Hi, wenn eine Transaction 6 Sekunden dauert und 10.000 Blocks liest. Kann natürlich sein, dass bei dir nichts angezeigt wird. Dann probier mal dieses hier: select a.sid, b.sql_text,a.SQL_EXEC_START from v$session a, v$sqltext b where a.SQL_ID = b.sql_id;
11. März 201114 j Hi, wenn eine Transaction 6 Sekunden dauert und 10.000 Blocks liest. Das ist so nicht ganz richtig. Zum sind ist es keine Transaktion die in der v$session_longops gelistet werden sondern Statements, zum anderen gibt es sowohl die 6 Sekunden Grenze als auch die 10000 Blockgrenze. Das alleine reicht aber nicht, denn es gibt durchaus Langläufer, die dort nicht auftauchen. Eine sehr gute Erläuterung findet sich hier. Dim
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.