1.2 查看v$event_name視圖的字段結構 SQL> desc v$event_name; 名稱 是否為空? 類型 ----------------------------------------- -------- --------------- EVENT# NUMBER EVENT_ID NUMBER NAME VARCHAR2(64) PARAMETER1 VARCHAR2(64) PARAMETER2 VARCHAR2(64) PARAMETER3 VARCHAR2(64) WAIT_CLASS_ID NUMBER WAIT_CLASS# NUMBER WAIT_CLASS VARCHAR2(64)
1.3 查看等待事件總數 11gr2: SQL> select count(*) from v$event_name; COUNT(*) ---------- 1116 10gr2 rac: sys@ORCL> select count(*) from v$event_name;
COUNT(*) ---------- 889 10gr2: SQL> select count(*) from v$event_name;
COUNT(*) ---------- 874
1.4 查看等待事件分類情況 /* Formatted on 6/27/2011 12:54:45 PM (QP5 v5.114.809.3010) */ SELECT wait_class#, wait_class_id, wait_class, COUNT ( * ) AS "count" FROM v$event_name GROUP BY wait_class#, wait_class_id, wait_class ORDER BY wait_class#;
7. Db file scattered read 這個等待事件在實際生產庫中經??梢钥吹剑@是一個用戶操作引起的等待事件,當用戶發出每次I/O需要讀取多個數據塊這樣的SQL 操作時,會產生這個等待事件,最常見的兩種情況是全表掃描(FTS: Full Table Scan)和索引快速掃描(IFFS: index fast full scan)。
Oracle的enqueue 有如下類型: Enqueue 縮寫 縮寫解釋 BL Buffer Cache management BR Backup/Restore CF Controlfile transaction CI Cross-instance Call Invocation CU Bind Enqueue DF Datafile DL Direct Loader Index Creation DM Database Mount DR Distributed Recovery Process DX Dirstributed Transaction FP File Object FS File Set HW High-water Lock IN Instance Number IR Instance Recovery IS Instance State IV Library Cache Invalidation JI Enqueue used during AJV snapshot refresh JQ Job Queue KK Redo Log “Kick” KO Multiple Object Checkpoint L[A-p] Library Cache Lock LS Log start or switch MM Mount Definition MR Media recovery N[A-Z] Library Cache bin PE Alter system set parameter =value PF Password file PI Parallel slaves PR Process startup
Parallel slave synchronization Q[A-Z] Row Cache RO Object Reuse RT Redo Thread RW Row Wait SC System Commit Number SM SMON
Sequence Number SQ Sequence Number Enqueue SR Synchronized replication
Sort segment ST Space management transaction SV Sequence number Value TA Transaction recovery TC Thread Checkpoint TE Extend Table TM DML enqueue TO Temporary Table Object Enqueue TS Temporary Segement(also TableSpace) TT Temporary Table TX Transaction UL User-defined Locks UN User name US Undo segment, Serialization WL Being Written Redo Log XA Instance Attribute Log XI Instance Registration Lock
25. SQL*Net break/reset to dblink 這個等待事件和SQL*Net break/reset to client 相同。不過它表示的是數據庫通過dblink訪問另一臺數據庫時,他們之間建立起一個會話,這個等待事件發生在這個會話之間的通信過程中,同樣如果出現這個等待事件,需要檢查兩臺數據庫之間的通信問題。
26. SQL*Net message from client 這個等待事件基本上是最常見的一個等待事件。當一個會話建立成功后,客戶端會向服務器端發送請求,服務器端處理完客戶端請求后,將結果返回給客戶端,并繼續等待客戶端的請求,這時候會產生SQL*Net message from client 等待事件。
30. SQL*Net more data from client 服務器端等待用戶發出更多的數據以便完成操作,比如一個大的SQL文本,導致一個SQL*Net 數據包無法完成傳輸,這樣服務器端會等待客戶端把整個SQL 文本發過來在做處理,這時候就會產生一個SQL*Net more data from client 等待事件。
31. SQL*Net more data from dblink 在一個分布式事務中,SQL 分布在不同的數據庫中執行,遠程數據庫執行完畢后將結果通過dblink返給發出SQL的數據庫,在等待數據從其他數據庫中通過dblink傳回的過程中,如果數據在遠程數據庫上處理時間很久,或者有大量的結果集需要返回,或者網絡性能問題都會產生SQL*Net more data from dblink 等待事件,它的意思是本地數據庫需要等到所有的數據從遠程處理完畢通過dblink傳回后,才可以在本機繼續執行操作。
33. SQL*Net more data to dblink 這個等待事件和SQL*Net more data to client 等待時間基本相同,只不過等待發生在分布式事務中,即本地數據庫需要將更多的數據通過dblink發送給遠程數據庫。由于發送的數據太多或者網絡性能問題,就會出現SQL*Net more data to dblink等待事件。