ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【Oracle】如何查询并行是否起作用?

【Oracle】如何查询并行是否起作用?

原创 Linux操作系统 作者:杨奇龙 时间:2012-04-16 21:41:09 0 删除 编辑
sql 使用了并行提示或者 parallel 关键字!
1) 在SQL执行的时候,在PL/SQL DEV看是否有多个活动会话执行一个SQL
2) SQL执行完了以后,在同一个会话查询v$pq_sesstat
V$PQ_SESSTAT视图中的输出结果仅仅指当前的会话,查询不了其他会话的并行执行的情况,使用该视图可以
ops$admin@yangdb>select * from v$pq_sesstat;
STATISTIC                      LAST_QUERY SESSION_TOTAL
------------------------------ ---------- -------------
Queries Parallelized                    0             0
DML Parallelized                        0             0
DDL Parallelized                        0             0
DFO Trees                               0             0
Server Threads                          0             0
Allocation Height                       0             0
Allocation Width                        0             0
Local Msgs Sent                         0             0
Distr Msgs Sent                         0             0
Local Msgs Recv'd                       0             0
Distr Msgs Recv'd                       0             0
11 rows selected.
ops$admin@yangdb>select /*+ parallel(e,2) */ count(*) from dba_objects e ;
  COUNT(*)
----------
    110586
ops$admin@yangdb>select * from v$pq_sesstat;
STATISTIC                      LAST_QUERY SESSION_TOTAL
------------------------------ ---------- -------------
Queries Parallelized                    1             1  --并行查询
DML Parallelized                        0             0  --并行DML
DDL Parallelized                        0             0  --并行DDL
DFO Trees                               1             1  
Server Threads                          2             0
Allocation Height                       2             0
Allocation Width                        1             0
Local Msgs Sent                       205           205  --本地发送的信息
Distr Msgs Sent                         0             0 
Local Msgs Recv'd                     205           205  --本地接受的信息
Distr Msgs Recv'd                       0             0
3) 查看sql的执行计划 
|  PX SEND QC (RANDOM)           |:TQ10004    |    17M|    2G| 375209 |
|   WINDOW SORT                  |            |    17M|    2G| 375209 |
|    PX RECEIVE                  |            |    17M|    2G| 213700 |
|     PX SEND HASH               |:TQ10003    |    17M|    2G| 213700 |
|      HASH JOIN RIGHT OUTER     |            |    17M|    2G| 213700 |
|       BUFFER SORT              |            |       |      |        |
|        PX RECEIVE              |            |     2M|   49M|   5648 |
|         PX SEND BROADCAST      |:TQ10000    |     2M|   49M|   5648 |
|          TABLE ACCESS FULL     |TBDM        |     2M|   49M|   5648 |
|       HASH JOIN RIGHT OUTER    |            |    17M|    2G| 208026 |
|        BUFFER SORT             |            |       |      |        |
|         PX RECEIVE             |            |     2M|   87M|   4430 |
|          PX SEND BROADCAST     |:TQ10001    |     2M|   87M|   4430 |
|           TABLE ACCESS FULL    |T_IDL       |     2M|   87M|   4430 |
|        HASH JOIN RIGHT OUTER   |            |    17M|    1G| 203572 |
|         BUFFER SORT            |            |       |      |        |
|          PX RECEIVE            |            |     1M|   53M| 113082 |
|           PX SEND BROADCAST    |:TQ10002    |     1M|   53M| 113082 |
|            TABLE ACCESS FULL   |DM          |     1M|   53M| 113082 |
|         PX BLOCK ITERATOR      |            |    17M|  820M|  90465 |
|          TABLE ACCESS FULL     |IDL         |    17M|  820M|  90465 |
4)使用V$PX_SESSTAT或者gvV$px_sesstat 可以查看
注意V$PX_SESSTAT的名称与此类似,但列的设置完全不同。V$PX_SESSTAT视图将V$PX_SESSTAT的会话信息与V$SESSTAT表连接。V$PX_SESSION视图也可以提供进程请求的并行度(req_degree)的信息,并将其与实际使用的并行度(degree)信息相比较。
关于

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22664653/viewspace-721379/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
MySQL DBA NoSQL DEVOPS

注册时间:2009-10-07

  • 博文量
    1026
  • 访问量
    7652207