在AWR报告中出现如下:
Top 5 Timed Events Avg %Total
~~~~~~~~~~~~~~~~~~ wait Call
Event Waits Time (s) (ms) Time Wait Class
―――――――――― ―――― ―――�C ―― ―― ―――-
cursor: pin S wait on X 6,618,147 70,770 11 38.4 Concurrenc
PX Deq Credit: send blkd 223,971 32,348 144 17.5 Other
db file sequential read 4,018,002 24,072 6 13.0 User I/O
latch: row cache objects 861,170 16,650 19 9.0 Concurrenc
CPU time 7,398 4.0
其中cursor: pin S wait on X和PX Deq Credit: send blkd,等待事件特别高,后者处理如下:
The wait events “PX Deq Credit: need buffer” and “PX Deq Credit: send blkd” are occur when data or
messages are exchanged between process that are part of a px query..
Tips to Reduce Waits for “PX DEQ CREDIT SEND BLKD” at Database Level [ID 738464.1]
PURPOSE
――-
Provide some scripts for a DBA to check the degree of parallelism
on tables and indexes.
SCOPE & APPLICATION
――――――-
DBA’s, developer and Analysts.
SQL> conn /as sysdba
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
Connected as SYS
SQL>
SQL> select substr(name,1,30) Name , substr(value,1,5) Value
2 from v$parameter
3 where name in (‘parallel_threads_per_cpu’ , ‘cpu_count’ );
NAME VALUE
――――――――――――――――――――――――――�C ―――――
cpu_count 16
parallel_threads_per_cpu 2
SQL>
SQL> select * from (
2 select substr(owner,1,15) Owner , ltrim(degree) Degree,
3 ltrim(instances) Instances,
4 count(*) “Num Tables” , ‘Parallel’
5 from all_tables
6 where ( trim(degree) != ’1′ and trim(degree) != ’0′ ) or
7 ( trim(instances) != ’1′ and trim(instances) != ’0′ )
8 group by owner, degree , instances
9 union
10 select substr(owner,1,15) owner , ’1′ , ’1′ ,
11 count(*) , ‘Serial’
12 from all_tables
13 where ( trim(degree) = ’1′ or trim(degree) = ’0′ ) and
14 ( trim(instances) = ’1′ or trim(instances) = ’0′ )
15 group by owner
16 )
17 order by owner;
OWNER DEGREE INSTANCES Num Tables ‘PARALLEL’
――――――――――――――― ―――――――――― ―――――――――― ―――- ―――-
BACKUP 1 1 1 Serial
CTXSYS 1 1 37 Serial
DBSNMP 1 1 21 Serial
DMSYS 1 1 2 Serial
EXFSYS 1 1 44 Serial
IGNITE 1 1 2 Serial
IGNITE_C 1 1 1 Serial
NETBEN 1 1 14426 Serial
OLAPSYS 1 1 126 Serial
OUTLN 1 1 3 Serial
SORAC 1 1 10 Serial
SYS 1 1 742 Serial
SYSMAN 1 1 340 Serial
SYSTEM 1 1 141 Serial
TSMSYS 1 1 1 Serial
WMSYS 1 1 40 Serial
XDB 1 1 11 Serial
17 rows selected
SQL>
SQL> select * from (
2 select substr(owner,1,15) Owner ,
3 substr(trim(degree),1,7) Degree ,
4 substr(trim(instances),1,9) Instances ,
5 count(*) “Num Indexes”,
6 ‘Parallel’
7 from all_indexes
8 where ( trim(degree) != ’1′ and trim(degree) != ’0′ ) or
9 ( trim(instances) != ’1′ and trim(instances) != ’0′ )
10 group by owner, degree , instances
11 union
12 select substr(owner,1,15) owner , ’1′ , ’1′ ,
13 count(*) , ‘Serial’
14 from all_indexes
15 where ( trim(degree) = ’1′ or trim(degree) = ’0′ ) and
16 ( trim(instances) = ’1′ or trim(instances) = ’0′ )
17 group by owner
18 )
19 order by owner;
OWNER DEGREE INSTANCES Num Indexes ‘PARALLEL’
――――――――――――――― ――――――― ――――――――― ―――�C ―――-
BACKUP 1 1 1 Serial
CTXSYS 1 1 46 Serial
DBSNMP 1 1 10 Serial
DMSYS 1 1 2 Serial
EXFSYS 1 1 37 Serial
IGNITE_C 1 1 1 Serial
NETBEN 1 1 23563 Serial
NETBEN DEFAULT DEFAULT 14 Parallel
OLAPSYS 1 1 135 Serial
OUTLN 1 1 3 Serial
SYS 1 1 705 Serial
SYS DEFAULT DEFAULT 1 Parallel
SYSMAN 1 1 396 Serial
SYSTEM 1 1 180 Serial
TSMSYS 1 1 1 Serial
WMSYS 1 1 57 Serial
XDB 1 1 51 Serial
17 rows selected
SQL>
SQL> select substr(t.owner,1,15) Owner ,
2 t.table_name ,
3 substr(trim(t.degree),1,7) Degree ,
4 substr(trim(t.instances),1,9) Instances,
5 i.index_name ,
6 substr(trim(i.degree),1,7) Degree ,
7 substr(trim(i.instances),1,9) Instances
8 from all_indexes i,
9 all_tables t
10 where ( trim(i.degree) != trim(t.degree) or
11 trim(i.instances) != trim(t.instances) ) and
12 i.owner = t.owner and
13 i.table_name = t.table_name;
OWNER TABLE_NAME DEGREE INSTANCES INDEX_NAME DEGREE INSTANCES
――――――――――――――― ―――――――――― ――――――― ――――――――― ―――――――――― ――――――― ―――――――――
SYS UTL_RECOMP_SORTED 1 1 UTL_RECOMP_SORT_IDX1 DEFAULT DEFAULT
NETBEN NB_TRAN_24612 1 1 PK_NB_TRAN_24612_1 DEFAULT DEFAULT
NETBEN MV_PAGE_24612 1 1 IN_MV_PAGE_PERF_24612 DEFAULT DEFAULT
NETBEN MV_PAGE_1417 1 1 IN_MV_PAGE_PERF_1417 DEFAULT DEFAULT
NETBEN NB_PAGE_24612 1 1 IN_PAGE_TRANID_24612 DEFAULT DEFAULT
NETBEN NB_PAGE_24612 1 1 IN_PAGE_PERF_24612 DEFAULT DEFAULT
NETBEN NB_PAGE_24612 1 1 IN_PAGE_ERROR_24612 DEFAULT DEFAULT
NETBEN NB_PAGE_1417 1 1 IN_PAGE_TRANID_1417 DEFAULT DEFAULT
NETBEN NB_PAGE_1417 1 1 IN_PAGE_PERF_1417 DEFAULT DEFAULT
NETBEN NB_PAGE_1417 1 1 IN_PAGE_ERROR_1417 DEFAULT DEFAULT
NETBEN NB_PAGE_23500 1 1 IN_PAGE_ERROR_23500 DEFAULT DEFAULT
NETBEN NB_TRAN_1417 1 1 IN_TRAN_PERF_1417 DEFAULT DEFAULT
NETBEN NB_PAGE_23500 1 1 IN_PAGE_PERF_23500 DEFAULT DEFAULT
NETBEN NB_PAGE_23500 1 1 IN_PAGE_TRANID_23500 DEFAULT DEFAULT
NETBEN NB_TRAN_22 1 1 IN_TRAN_PERF_22 DEFAULT DEFAULT
15 rows selected