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 查看等待事件總數(shù) 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 這個等待事件在實際生產(chǎn)庫中經(jīng)??梢钥吹?,這是一個用戶操作引起的等待事件,當用戶發(fā)出每次I/O需要讀取多個數(shù)據(jù)塊這樣的SQL 操作時,會產(chǎn)生這個等待事件,最常見的兩種情況是全表掃描(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 相同。不過它表示的是數(shù)據(jù)庫通過dblink訪問另一臺數(shù)據(jù)庫時,他們之間建立起一個會話,這個等待事件發(fā)生在這個會話之間的通信過程中,同樣如果出現(xiàn)這個等待事件,需要檢查兩臺數(shù)據(jù)庫之間的通信問題。
26. SQL*Net message from client 這個等待事件基本上是最常見的一個等待事件。當一個會話建立成功后,客戶端會向服務器端發(fā)送請求,服務器端處理完客戶端請求后,將結果返回給客戶端,并繼續(xù)等待客戶端的請求,這時候會產(chǎn)生SQL*Net message from client 等待事件。
27. SQL*Net message from dblink 這個等待事件和SQL*Net message from client相同,不過它表示的是數(shù)據(jù)庫通過dblink 訪問另一個數(shù)據(jù)庫時,他們之間會建立一個會話,這個等待事件發(fā)生在這個會話之間的通信過程中。
29. SQL*Net message to dblink 這個等待事件和SQL*Net message to client 相同,不過是發(fā)生在數(shù)據(jù)庫服務器和服務器之間的等待事件,產(chǎn)生這個等待的原因可能是遠程服務器繁忙,而無法及時接收發(fā)送過來的消息,也可能是服務器之間網(wǎng)絡問題導致消息無法發(fā)送過來。
30. SQL*Net more data from client 服務器端等待用戶發(fā)出更多的數(shù)據(jù)以便完成操作,比如一個大的SQL文本,導致一個SQL*Net 數(shù)據(jù)包無法完成傳輸,這樣服務器端會等待客戶端把整個SQL 文本發(fā)過來在做處理,這時候就會產(chǎn)生一個SQL*Net more data from client 等待事件。
31. SQL*Net more data from dblink 在一個分布式事務中,SQL 分布在不同的數(shù)據(jù)庫中執(zhí)行,遠程數(shù)據(jù)庫執(zhí)行完畢后將結果通過dblink返給發(fā)出SQL的數(shù)據(jù)庫,在等待數(shù)據(jù)從其他數(shù)據(jù)庫中通過dblink傳回的過程中,如果數(shù)據(jù)在遠程數(shù)據(jù)庫上處理時間很久,或者有大量的結果集需要返回,或者網(wǎng)絡性能問題都會產(chǎn)生SQL*Net more data from dblink 等待事件,它的意思是本地數(shù)據(jù)庫需要等到所有的數(shù)據(jù)從遠程處理完畢通過dblink傳回后,才可以在本機繼續(xù)執(zhí)行操作。
32. SQL*Net more data to client 當服務器端有太多的數(shù)據(jù)需要發(fā)給客戶端時,可能會產(chǎn)生SQL*Net more data to client等待事件,也可能由于網(wǎng)絡問題導致服務器無法及時地將信息或者處理結果發(fā)送給客戶端,同樣會產(chǎn)生這個等待。
33. SQL*Net more data to dblink 這個等待事件和SQL*Net more data to client 等待時間基本相同,只不過等待發(fā)生在分布式事務中,即本地數(shù)據(jù)庫需要將更多的數(shù)據(jù)通過dblink發(fā)送給遠程數(shù)據(jù)庫。由于發(fā)送的數(shù)據(jù)太多或者網(wǎng)絡性能問題,就會出現(xiàn)SQL*Net more data to dblink等待事件。