Beruflich Dokumente
Kultur Dokumente
24 rows selected
16 Copyright 2011, Oracle and/or its affiliates. All rights reserved.
24 rows selected.
Find slow SQL (ASH in AWR) - readable
SQL>SELECT sql id sql type SQL>SELECT sql_id, sql_type
2 , round(sample_cnt_sql/sample_cnt_total*100) as sample_pct
3 , round(sample_cnt_sql /6/60,1) hours
4 FROM(SELECT DISTINCT sql_id
5 , aa.name AS sql_type
6 , COUNT(*) over (PARTITION BY sql_id) AS sample_cnt_sql
7 , COUNT(*) over () AS sample_cnt_total
8 FROM dba_hist_active_sess_history ash
9 JOIN dba_hist_snapshot s USING (dbid, INSTANCE_NUMBER, snap_id)
10 JOIN audit actions aa on (ash.sql opcode = aa.action) 10 JOIN audit_actions aa on (ash.sql_opcode aa.action)
11 WHERE begin_interval_time BETWEEN
snip
18 ORDER BY 3 desc)
19 WHERE rownum <= 3;
SQL_ID SQL_TYPE SAMPLE_PCT HOURS
------------- -------- ---------- -----
dkwucgaxxhm2z SELECT 25 20.4
grksgbxxuacaf SELECT 21 16 8 grksgbxxuacaf SELECT 21 16.8
gh6w2fm3avn3j SELECT 12 10.1
3 rows selected.
17 Copyright 2011, Oracle and/or its affiliates. All rights reserved.
When Row Source Object
Active Session History (ASH) - Dimensions
SAMPLE_ID
SAMPLE_TIME
Session
SESSION ID
SQL_PLAN_LINE_ID
SQL_PLAN_OPERATION
Waits
EVENT
j
CURRENT_OBJ#
CURRENT_FILE#
CURRENT_BLOCK#
CURRENT_ROW#
A li ti
SESSION_ID
SESSION_SERIAL#
SESSION_TYPE
SESSION_STATE
USER_ID
QC_INSTANCE_ID
QC SESSION ID
EVENT
EVENT_ID
EVENT#
SEQ#
P1TEXT
P1
P2TEXT
Application
SERVICE_HASH
PROGRAM
MODULE
ACTION
MACHINE
QC_SESSION_ID
QC_SESSION_SERIAL#
CLIENT_ID
IN and IS columns
SQL
P2TEXT
P2
P3TEXT
P3
WAIT_CLASS
WAIT_CLASS_ID
WAIT TIME
MACHINE
Statistics
TM_DELTA_TIME
TM DELTA CPU TIME
SQL
SQL_ID
IS_SQLID_CURRENT
SQL_CHILD_NUMBER
SQL_OPCODE
SQL_OPNAME
TOP LEVEL SQL ID
WAIT_TIME
TIME_WAITED
CURRENT_OBJ#
CURRENT_FILE#
CURRENT_BLOCK#
CURRENT_ROW#
TM_DELTA_CPU_TIME
TM_DELTA_DB_TIME
DELTA_TIME
DELTA_READ_IO_REQUESTS
DELTA_WRITE_IO_REQUESTS
DELTA_READ_IO_BYTES
TOP_LEVEL_SQL_ID
TOP_LEVEL_SQL_OPCODE
SQL_EXEC_ID
SQL_EXEC_START
SQL_PLAN_HASH_VALUE
SQL_PLAN_OPTIONS
Blocking Session
BLOCKING_SESSION_STATUS
BLOCKING_SESSION
BLOCKING_SESSION_SERIAL#
OC G S
DELTA_WRITE_IO_BYTES
DELTA_INTERCONNECT_IO_BYTES
PGA_ALLOCATED
TEMP_SPACE_ALLOCATED
18 Copyright 2011, Oracle and/or its affiliates. All rights reserved.
BLOCKING_INST_ID
BLOCKING_HANGCHAIN_INFO
AWR SQL stats
SQL> SELECT PLAN HASH VALUE SQL> SELECT PLAN_HASH_VALUE,
2 , sum(EXECUTIONS_DELTA) as executions
3 , sum(ROWS_PROCESSED_DELTA) as rows_processed
4 , sum(ELAPSED_TIME_DELTA) as elapsed_time
5 , sum(CPU_TIME_DELTA) as cpu_time, sum(IOWAIT_DELTA) as iowait_time
6 , sum(DIRECT_WRITES_DELTA) as direct_writes
7 , sum(BUFFER_GETS_DELTA) as LIO, sum(DISK_READS_DELTA) as PIO
8 FROM dba_hist_sqlstat
9 WHERE snap_id between 132042 and 132124
10 AND sql id = 'dkwucgaxxhm2z' 10 AND sql_id dkwucgaxxhm2z
11 GROUP BY sql_id, PLAN_HASH_VALUE, OPTIMIZER_ENV_HASH_VALUE;
Plan IO
Hash Rows Elapsed CPU WAIT Direct
Value EXECUTIONS Processed Time TIME TIME Writes LIO PIO Value EXECUTIONS Processed Time TIME TIME Writes LIO PIO
---------- ---------- ---------- ---------- ---------- ----------- -------- -------- -------
1700726234 1 5997889 7.3806E+10 903837577 73047955458 219418 36152215 6427679
1 row selected.
19 Copyright 2011, Oracle and/or its affiliates. All rights reserved.
AWR SQL stats - readable
SQL> SELECT PLAN HASH VALUE executions SQL> SELECT PLAN_HASH_VALUE, executions
2 , round(elapsed_time /1000000/60/60,1) as elapsed_hours
3 , rows_processed
4 , round(cpu_time /elapsed_time * 100) as cpu_time_pct
5 round(iowait time /elapsed time * 100) as iowait pct 5 , round(iowait_time /elapsed_time 100) as iowait_pct
6 , LIO, PIO, direct_writes
7 , round(iowait_time /PIO/1000,1) as mili_sec_PIO
8 FROM(SELECT PLAN_HASH_VALUE
9 , sum(EXECUTIONS DELTA) as executions 9 , sum(EXECUTIONS_DELTA) as executions
10 , sum(ROWS_PROCESSED_DELTA) as rows_processed
11 , sum(ELAPSED_TIME_DELTA) as elapsed_time
12 , sum(CPU_TIME_DELTA) as cpu_time, sum(IOWAIT_DELTA) as iowait_time
13 , sum(DIRECT_WRITES_DELTA) as direct_writes
14 , sum(BUFFER_GETS_DELTA) as LIO, sum(DISK_READS_DELTA) as PIO
15 FROM dba_hist_sqlstat
16 WHERE snap_id between 132042 and 132124
17 AND sql_id = 'dkwucgaxxhm2z'
18 GROUP BY sql id, PLAN HASH VALUE); q _ , _ _ );
Plan CPU IO Milisec
Hash Elapsed Rows TIME WAIT Direct /
Value EXECUTIONS Hours Processed PCT PCT LIO PIO Writes Pio
---------- ---------- -------- ---------- ---- ----- ---------- ---------- -------- -------
20 Copyright 2011, Oracle and/or its affiliates. All rights reserved.
1700726234 1 20.5 5,997,889 1 99 36,152,215 6,427,679 219,418 11.4
AWR SQL plan
SQL>select * from table(dbms xplan display awr('dkwucgaxxhm2z' 1700726234 null SQL>select * from table(dbms_xplan.display_awr( dkwucgaxxhm2z , 1700726234, null,
'ALL LAST'));
----------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
----------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | | 9553K(100)| |
| 1 | NESTED LOOPS OUTER | | 8011K| 46G| | 9553K (1)| 31:50:39 |
| 2 | NESTED LOOPS OUTER | | 8011K| 45G| | 7148K (1)| 23 49 40 | | 2 | NESTED LOOPS OUTER | | 8011K| 45G| | 7148K (1)| 23:49:40 |
| 3 | NESTED LOOPS OUTER | | 8011K| 45G| | 4743K (1)| 15:48:44 |
| 4 | NESTED LOOPS OUTER | | 8011K| 45G| | 3941K (1)| 13:08:24 |
| 5 | NESTED LOOPS OUTER | | 8011K| 44G| | 3140K (1)| 10:28:03 |
| 6 | HASH JOIN RIGHT OUTER | | 8011K| 44G| | 2338K (1)| 07:47:43 |
| 7 | VIEW | index$_join$_009 | 6633 | 285K| | 39 (3)| 00:00:01 |
| 8 | HASH JOIN | | | | | | |
| 9 | HASH JOIN | | | | | | |
| 10 | INDEX FAST FULL SCAN | S_SRC_M10 | 6633 | 285K| | 10 (0)| 00:00:01 |
| 11 | INDEX FAST FULL SCAN | S SRC M12 | 6633 | 285K| | 10 (0)| 00:00:01 | | 11 | INDEX FAST FULL SCAN | S_SRC_M12 | 6633 | 285K| | 10 (0)| 00:00:01 |
| 12 | INDEX FAST FULL SCAN | S_SRC_P1 | 6633 | 285K| | 8 (0)| 00:00:01 |
| 13 | HASH JOIN RIGHT OUTER | | 8011K| 44G| 228M| 2338K (1)| 07:47:42 |
| 14 | TABLE ACCESS FULL | S_ORG_EXT_LSX | 7488K| 142M| | 38163 (2)| 00:07:38 |
| 15 | HASH JOIN RIGHT OUTER | | 8011K| 43G| | 51545 (1)| 00:10:19 |
| 16 | TABLE ACCESS FULL | S_INDUST_LANG | 4023 | 113K| | 199 (0)| 00:00:03 |
| 17 | HASH JOIN RIGHT OUTER | | 8011K| 43G| | 51289 (1)| 00:10:16 |
| 18 | TABLE ACCESS FULL | S_ORG_PRTNR | 324 | 43740 | | 8 (0)| 00:00:01 |
| 19 | NESTED LOOPS OUTER | | 8011K| 42G| | 51224 (1)| 00:10:15 |
| 20 | VIEW | | 8011K| 42G| | 51169 (1)| 00:10:15 | | 20 | VIEW | | 8011K| 42G| | 51169 (1)| 00:10:15 |
| 21 | NESTED LOOPS | | | | | | |
| 22 | NESTED LOOPS | | 8011K| 8091M| | 51169 (1)| 00:10:15 |
| 23 | INDEX FULL SCAN | SO_ANA_BU_U2 | 19 | 285 | | 1 (0)| 00:00:01 |
| 24 | INDEX RANGE SCAN | S_ORG_EXT_M91 | 74493 | | | 35 (3)| 00:00:01 |
| 25 | TABLE ACCESS BY INDEX ROWID| S_ORG_EXT | 421K| 419M| | 2693 (1)| 00:00:33 |
| 26 | TABLE ACCESS BY INDEX ROWID | S_OU_PRTNR_TYPE | 1 | 94 | | 1 (0)| 00:00:01 |
| 27 | INDEX UNIQUE SCAN | S_OU_PRTNR_TYPE_P1 | 1 | | | 1 (0)| 00:00:01 |
| 28 | TABLE ACCESS BY INDEX ROWID | S_ORG_EXT | 1 | 42 | | 1 (0)| 00:00:01 |
| 29 | INDEX UNIQUE SCAN | S ORG EXT P1 | 1 | | | 1 (0)| 00:00:01 | _ _ _
| 30 | TABLE ACCESS BY INDEX ROWID | S_ORG_EXT | 1 | 42 | | 1 (0)| 00:00:01 |
| 31 | INDEX UNIQUE SCAN | S_ORG_EXT_P1 | 1 | | | 1 (0)| 00:00:01 |
| 32 | TABLE ACCESS BY INDEX ROWID | S_ORG_EXT | 1 | 42 | | 1 (0)| 00:00:01 |
| 33 | INDEX UNIQUE SCAN | S_ORG_EXT_P1 | 1 | | | 1 (0)| 00:00:01 |
| 34 | TABLE ACCESS BY INDEX ROWID | S_ADDR_PER | 1 | 59 | | 1 (0)| 00:00:01 |
| 35 | INDEX UNIQUE SCAN | S_ADDR_PER_P1 | 1 | | | 1 (0)| 00:00:01 |
| 36 | TABLE ACCESS BY INDEX ROWID | S_ADDR_PER | 1 | 59 | | 1 (0)| 00:00:01 |
| 37 | INDEX UNIQUE SCAN | S_ADDR_PER_P1 | 1 | | | 1 (0)| 00:00:01 |
----------------------------------------------------------------------------------------------------------------------
21 Copyright 2011, Oracle and/or its affiliates. All rights reserved.
Find slow SQL (ASH in AWR)
LECT sql id sql type LECT sql_id, sql_type
, round(sample_cnt_sql/sample_cnt_total*100) as sample_pct
, round(sample_cnt_sql /6/60,1) hours
FROM(SELECT DISTINCT sql_id
, aa.name AS sql_type
, COUNT(*) over (PARTITION BY sql_id) AS sample_cnt_sql
, COUNT(*) over () AS sample_cnt_total
FROM dba_hist_active_sess_history ash
JOIN dba_hist_snapshot s USING (dbid, INSTANCE_NUMBER, snap_id)
JOIN audit actions aa on (ash.sql opcode = aa.action) JOIN audit_actions aa on (ash.sql_opcode aa.action)
WHERE begin_interval_time BETWEEN
ORDER BY 3 desc)
WHERE rownum <= 3;
SQL_TYPE SAMPLE_PCT HOURS
------- -------- ---------- -----
axxhm2z SELECT 25 20.4
xxuacaf SELECT 21 16 8 xxuacaf SELECT 21 16.8
m3avn3j SELECT 12 10.1
selected.
ASH rowsource data (plan line id)
LECT sql_id, sql_plan_line_id
, round(sample_cnt_plan_line/sample_cnt_total*100) AS sql_plan_line_pct
, round(sample_cnt_plan_line/6) minutes
OM(
SELECT DISTINCT sql id sql plan line id SELECT DISTINCT sql_id, sql_plan_line_id
, COUNT(*) over (PARTITION BY sql_plan_line_id) AS sample_cnt_plan_line
, COUNT(*) over () AS sample_cnt_total
FROM dba_hist_active_sess_history ash
JOIN dba_hist_snapshot s USING (dbid, INSTANCE_NUMBER, snap_id)
WHERE sql_id = 'dkwucgaxxhm2z and begin_interval_time BETWEEN