Oracle“并行执行”之四——监控视图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle“并行执行”之四——监控视图相关的知识,希望对你有一定的参考价值。

摘自《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“并行执行”之四——监控视图的主要内容,如果未能解决你的问题,请参考以下文章

Oracle“并行执行”之三——参数

Oracle“并行执行”之一——How to work

Oracle客户端执行exp命令设置

并行的假象和分时系统

并发,并行

Oracle-第一篇一些调优技巧