標籤:oracle parallel 效能監控
摘自《VLDB and Partitioning Guide》
1、視圖介紹
V$PX_BUFFER_ADVICE
提供所有並行查詢的BUFFER的曆史使用方式,以及相關的建議規劃。對於並存執行過程中的記憶體不足等問題,可以查詢這個視圖以便能夠重新設定一下SGA。
V$PX_SESSION
提供關於並行進程會話、伺服器組、伺服器集合、伺服器數量的資訊,也提供即時的並行伺服器處理序資訊。同時可以通過這個視圖查看並行語句的請求DOP和實際DOP等資訊。
V$PX_SESSTAT
將V$PX_SESSION和V$SESSTAT進行JOIN操作,所以此視圖可以提供所有並行會話的統計資訊。
V$PX_PROCESS
提供所有並行process的資訊,包括狀態、會話ID、進程ID以及其它資訊。
V$PX_PROCESS_SYSSTAT
提供並行伺服器的狀態資訊及BUFFER的分配資訊。
V$PQ_SLAVE
列出所有並行伺服器的統計資訊。
V$PQ_SYSSTAT
列出並行查詢的系統統計資訊。
V$PQ_SESSTAT
列出並行查詢的會話統計資訊。只有並行語句執行完畢後,才能查看到此視圖的會話統計資訊。
V$PQ_TQSTAT
提供並行操作的統計資訊,能夠顯示每個階段的每個並行伺服器處理的行數、位元組數。
只有並行語句執行完畢後,才能查看到此視圖的會話統計資訊,而且只能保留到會話的有效期間。對於並行DML,只有提交或復原後方能顯示此視圖的相關統計資訊。
2、常用指令碼
1)查看系統中並行統計資訊,是否實際使用了請求的DOP,以及這些操作是否發生降級:
SELECT NAME,VALUE FROM v$sysstat t WHERE t.NAME LIKE ‘%Parallel%‘;
NAME VALUE
Parallel operations not downgraded 4
Parallel operations downgraded to serial 0
Parallel operations downgraded 75 to 99 pct 0
Parallel operations downgraded 50 to 75 pct 0
Parallel operations downgraded 25 to 50 pct 0
Parallel operations downgraded 1 to 25 pct 0
2)查看V$PQ_SYSSTAT視圖中並行從屬伺服器統計資訊。通過查看這些資訊,可以看出資料庫中的並行設定是否正確。如果看到伺服器關閉(Servers Shutdown)和伺服器啟動值較高,則可能表明PARALLEL_MIN_SERVERS參數的設定值過低,因為持續不斷啟動和關閉並行進程需要相應的成本支出。
SELECT * FROM V$PQ_SYSSTAT;
STATISTIC VALUE
Servers Busy 8
Servers Idle 8
Servers Highwater 16
Server Sessions 59
Servers Started 35
Servers Shutdown 19
Servers Cleaned Up 0
Queries Queued 0
Queries Initiated 4
Queries Initiated (IPQ) 0
DML Initiated 0
DML Initiated (IPQ) 0
DDL Initiated 0
DDL Initiated (IPQ) 0
DFO Trees 4
Sessions Active 1
Local Msgs Sent 41706
Distr Msgs Sent 0
Local Msgs Recv‘d 78048
Distr Msgs Recv‘d 0
3)查詢V$PQ_TQSTAT視圖,可以確定各個並行伺服器之間如何拆分工作的,也可以顯示時間使用的DOP。不過查詢此視圖時,需要在並行操作同一個會話中執行方可顯示資訊。
SELECT * FROM V$PQ_TQSTAT;
DFO_NUMBER TQ_ID SERVER_TYPE NUM_ROWS BYTES OPEN_TIME AVG_LATENCY WAITS TIMEOUTS PROCESS INSTANCE
1 0 Producer 1 36 0 0 13 0 P001 1
1 0 Producer 1 36 0 0 12 0 P004 1
1 0 Producer 1 36 0 0 13 0 P003 1
1 0 Producer 1 36 0 0 13 0 P000 1
1 0 Producer 1 36 0 0 13 0 P002 1
1 0 Producer 1 36 0 0 13 1 P006 1
1 0 Producer 1 36 0 0 13 0 P007 1
1 0 Producer 1 36 0 0 14 1 P005 1
1 0 Consumer 8 288 0 0 154 42 QC 1
4)查詢V$SYSTEM_EVENT或者V$SESSION_EVENT視圖,可以知道資料庫中與並行相關的等待。
SQL> SELECT event,wait_class,total_waits FROM V$SYSTEM_EVENT WHERE event LIKE ‘PX%‘;
EVENT WAIT_CLASS TOTAL_WAITS
------------------------------ ---------- -----------
PX Deque wait Idle 3
PX Idle Wait Idle 94
PX Deq: Join ACK Idle 59
PX Deq Credit: need buffer Idle 1009
PX Deq Credit: send blkd Idle 4609
PX Deq: Parse Reply Idle 56
PX Deq: Execute Reply Idle 323
PX Deq: Execution Msg Idle 376
PX Deq: Table Q Normal Idle 77772
PX qref latch Other 14
PX Deq: Signal ACK RSG Other 8
EVENT WAIT_CLASS TOTAL_WAITS
------------------------------ ---------- -----------
PX Deq: Signal ACK EXT Other 11
PX Deq: Slave Session Stats Other 22
13 rows selected.
Oracle“並存執行”之四——監控視圖