zoukankan      html  css  js  c++  java
  • 如何测试Oracle并行执行的并行度状况

    如何测试Oracle并行执行的并行度状况:

    可以通过如下的脚本,来查看要求的并行度,和实际获得的并行度。

    脚本来自:

    http://askdba.org/weblog/forums/topic/query-to-identify-parallel-slaves/

    col username for a12
    col module for a10 trunc
    col state for a20
    col "QC SID" for A6
    col SID for a10
    col "QC/Slave" for A10
    col "ReqDOP" for 999
    col "ActDOP" for 999
    col "slave set" for  A10
    col event for a25 trunc
    col action for a20 trunc
    col p1text for a20 trunc
    col secwait for 99999
    col state for a10 trunc
    col object for a25 trunc
    col command for a15 trunc
    set pages 300  lines 300
    select
        s.inst_id,
        decode(px.qcinst_id,NULL,s.username,
              ' - '||lower(substr(s.program,length(s.program)-4,4) ) ) "Username",
        decode(px.qcinst_id,NULL, 'QC', '(Slave)') "QC/Slave" ,
        to_char( px.server_set) "Slave Set",
        to_char(s.sid) "SID",
        decode(px.qcinst_id, NULL ,to_char(s.sid) ,px.qcsid) "QC SID",
        px.req_degree "Requested DOP",
       px.degree "Actual DOP",s.module,s.sql_id,s.event,s.status
     from
       gv$px_session px,
       gv$session s
     where
       px.sid=s.sid (+) and
       px.serial#=s.serial# and
       px.inst_id = s.inst_id
    order by 2 desc;

    在Oracel 11.2.0.4进行实际测试,有效。

    实际例子:

    $cat q00.sql

    col username for a12
    col module for a10 trunc
    col state for a20
    col "QC SID" for A6
    col SID for a10
    col "QC/Slave" for A10
    col "ReqDOP" for 999
    col "ActDOP" for 999
    col "slave set" for  A10
    col event for a25 trunc
    col action for a20 trunc
    col p1text for a20 trunc
    col secwait for 99999
    col state for a10 trunc
    col object for a25 trunc
    col command for a15 trunc
    set pages 300  lines 300
    select
       s.inst_id,
       decode(px.qcinst_id,NULL,s.username,
             ' - '||lower(substr(s.program,length(s.program)-4,4) ) ) "Username",
       decode(px.qcinst_id,NULL, 'QC', '(Slave)') "QC/Slave" ,
       to_char( px.server_set) "Slave Set",
       to_char(s.sid) "SID",
       decode(px.qcinst_id, NULL ,to_char(s.sid) ,px.qcsid) "QC SID",
       px.req_degree "Requested DOP",
      px.degree "Actual DOP",s.module,s.sql_id,s.event,s.status
    from
      gv$px_session px,
      gv$session s
    where
      px.sid=s.sid (+) and
      px.serial#=s.serial# and
      px.inst_id = s.inst_id
    order by 2 desc;


    ==============================
    设置参数:

    alter system set PARALLEL_MIN_TIME_THRESHOLD=1 scope=spfile;
    alter system set PARALLEL_DEGREE_POLICY=auto scope=spfile;

    shu immediate
    startup


    ===================================
    通过别的Session,查看状况:  <<<<<<<<<<<<<<Requested DOP = 6 、 Actual DOP =6

    SQL>@q00.sql

      INST_ID Username     QC/Slave   Slave Set  SID        QC SID Requested DOP Actual DOP MODULE     SQL_ID               EVENT                     STATUS
    ---------- ------------ ---------- ---------- ---------- ------ ------------- ---------- ---------- -------------------- ------------------------- ------------------------
            1 U1           QC                    125        125                             SQL*Plus   9y3cpa2z9r4zw        SQL*Net message from clie INACTIVE
            1  - p011      (Slave)    2          19         125                6          6 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p010      (Slave)    2          144        125                6          6 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p009      (Slave)    2          33         125                6          6 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p008      (Slave)    2          142        125                6          6 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p007      (Slave)    2          20         125                6          6 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p006      (Slave)    2          139        125                6          6 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p005      (Slave)    1          18         125                6          6 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p004      (Slave)    1          29         125                6          6 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE 
            1  - p003      (Slave)    1          143        125                6          6 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p002      (Slave)    1          141        125                6          6 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p001      (Slave)    1          21         125                6          6 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p000      (Slave)    1          140        125                6          6 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE

    13行が選択されました。

    SQL>


    ===================================
    修改session 级别并行度,再次确认:

    alter session force parallel query parallel 3;
    select * from dba_segments,dba_extents;

    ===================================
    通过别的Session,查看状况:  <<<<<  Requested DOP =3 Actual DOP =3

    SQL>@q00.sql


      INST_ID Username     QC/Slave   Slave Set  SID        QC SID Requested DOP Actual DOP MODULE     SQL_ID               EVENT                     STATUS
    ---------- ------------ ---------- ---------- ---------- ------ ------------- ---------- ---------- -------------------- ------------------------- ------------------------
            1 U1           QC                    125        125                             SQL*Plus   9y3cpa2z9r4zw        SQL*Net message from clie INACTIVE
            1  - p005      (Slave)    2          20         125                3          3 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p004      (Slave)    2          21         125                3          3 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p003      (Slave)    2          144        125                3          3 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p002      (Slave)    1          140        125                3          3 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p001      (Slave)    1          19         125                3          3 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p000      (Slave)    1          148        125                3          3 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE

    SQL>

    ===================================
    修改session 级别并行度,再次确认:
    alter session force parallel query parallel 8;

    select * from dba_segments,dba_extents;


    ===================================
    通过别的Session,查看状况: <<<<<  Requested DOP = 8 Actual DOP =8

      INST_ID Username     QC/Slave   Slave Set  SID        QC SID Requested DOP Actual DOP MODULE     SQL_ID               EVENT                     STATUS
    ---------- ------------ ---------- ---------- ---------- ------ ------------- ---------- ---------- -------------------- ------------------------- ------------------------
            1 U1           QC                    125        125                             SQL*Plus   9y3cpa2z9r4zw        SQL*Net message from clie INACTIVE
            1  - p015      (Slave)    2          153        125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p014      (Slave)    2          23         125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p013      (Slave)    2          154        125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p012      (Slave)    2          29         125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p011      (Slave)    2          18         125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p010      (Slave)    2          141        125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p009      (Slave)    2          33         125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p008      (Slave)    2          142        125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq: Execution Msg     INACTIVE
            1  - p007      (Slave)    1          31         125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p006      (Slave)    1          139        125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p005      (Slave)    1          21         125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p004      (Slave)    1          20         125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p003      (Slave)    1          144        125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p002      (Slave)    1          148        125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p001      (Slave)    1          26         125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE
            1  - p000      (Slave)    1          143        125                8          8 SQL*Plus   9y3cpa2z9r4zw        PX Deq Credit: send blkd  ACTIVE

    SQL>

  • 相关阅读:
    使用mybatis报错constructor found in com.atguigu.mybatis.bean.Department matching [java.lang.Integer, java.lang.String]
    mybatis报错 Error instantiating interface com.atguigu.mybatis.dao.DepartmentMapper with invalid types () or values ()
    报错Mapped Statements collection does not contain value for com.atguigu.mybatis.dao.EmployeeMapperPlus
    mybatis学习(2)
    resultType没有指定就会报错
    使用Mybatis时报错Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
    Oracle操作ORA-02289: 序列不存在
    在数据库中添加数据以后,使用Mybatis进行查询结果为空
    program
    codevs4817 江哥的dp题d
  • 原文地址:https://www.cnblogs.com/gaojian/p/7568033.html
Copyright © 2011-2022 走看看