0% found this document useful (0 votes)
169 views11 pages

New 7

The document contains SQL scripts analyzing database performance and indexes. It reviews database snapshots, index usage and performance, and top indexes by size. SQL scripts are provided to analyze indexes used by SQL, index performance over time, and top indexes accessed in the system.

Uploaded by

Sangeeth Talluri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
169 views11 pages

New 7

The document contains SQL scripts analyzing database performance and indexes. It reviews database snapshots, index usage and performance, and top indexes by size. SQL scripts are provided to analyze indexes used by SQL, index performance over time, and top indexes accessed in the system.

Uploaded by

Sangeeth Talluri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 11

set lines 155

col execs for 999,999,999


col avg_etime for 999,999.999
col avg_lio for 999,999,999.9
col begin_interval_time for a30
col node for 99999
break on plan_hash_value on startup_time skip 1
select ss.snap_id, ss.instance_number node, begin_interval_time, sql_id,
plan_hash_value,
nvl(executions_delta,0) execs,
(elapsed_time_delta/decode (nvl(executions_delta,0),0,1,executions_delta))/1000000
avg_etime,
(buffer_gets_delta/decode (nvl(buffer_gets_delta,0),0,1,executions_delta))
avg_lio,sql_profile
from DBA_HIST_SQLSTAT S, DBA_HIST_SNAPSHOT SS
where sql_id = nvl('&sql_id','XXXXXXXXX')
and ss.snap_id = S.snap_id
and ss.instance_number = S.instance_number
and executions_delta > 0
order by 1, 2, 3
/
with users2chk as (
select
username
from dba_users
where default_tablespace not in ('SYSTEM','SYSAUX')
and username not in ('SQLTXPLAIN')
),
indexes as (
select owner, table_name, index_name, join_index, partitioned, degree
, leaf_blocks, distinct_keys,table_owner,num_rows
, avg_leaf_blocks_per_key, avg_data_blocks_per_key
, clustering_factor,
case
when domidx_status is NULL then
case
when funcidx_status is NULL then
'BTREE - ' || status
when funcidx_status = 'ENABLED' then
'FUNCIDX - ENABLED'
when funcidx_status = 'DISABLED' then
'FUNCIDX - DISABLED'
else 'UNKNOWN IDX Type(1)'
end
when domidx_status = 'VALID' then
'DOMIDX - VALID'
when domidx_status = 'IDXTYP_INVLD' then
'DOMIDX - INVALID'
else
'UNKNOWN IDX Type(2)'
end index_type
from dba_indexes i
join users2chk u on u.username = i.owner
),
indexes_used as (
select distinct
object_owner owner
, object_name index_name
from dba_hist_sql_plan sp
join users2chk u on u.username = sp.object_owner
and sp.object_type = 'INDEX'
)
select i.owner
, t.table_name
, t.blocks - nvl(t.empty_blocks,0) table_blocks
, i.index_name
, i.index_type
, i.join_index
, i.partitioned , i.degree
, i.leaf_blocks, i.distinct_keys
, i.avg_leaf_blocks_per_key, i.avg_data_blocks_per_key
, i.clustering_factor, i.num_rows
, decode(iu.index_name,null,'NO','YES') index_used_awr
from indexes i
join dba_tables t on t.owner = i.table_owner
and t.table_name = i.table_name
full outer join indexes_used iu on iu.owner = i.owner
and iu.index_name = i.index_name
order by 1,2
/

SELECT i.table_name, i.index_name, t.num_rows, t.blocks, i.clustering_factor,


case when nvl(i.clustering_factor,0) = 0 then 'No Stats'
when nvl(t.num_rows,0) = 0 then 'No Stats'
when (round(i.clustering_factor / t.num_rows * 100)) < 6 then 'Excellent '
when (round(i.clustering_factor / t.num_rows * 100)) between 7 and 11 then
'Good'
when (round(i.clustering_factor / t.num_rows * 100)) between 12 and 21 then
'Fair'
else 'Poor'
end Index_Quality,
i.avg_data_blocks_per_key, i.avg_leaf_blocks_per_key,
to_char(o.created,'MM/DD/YYYY HH24:MI:SSSSS') Created
from dba_indexes i, DBA_objects o, dba_tables t
where i.index_name = o.object_name
and i.table_name = t.table_name and o.owner='THD01' and
t.table_name='YFS_SHIPMENT'
order by 1 desc;

SELECT
p.dbid,
p.sql_id,
P.OBJECT_OWNER OWNER,
p.object_name A_INDEX_NAME,
p.options INDEX_OPERATION,
COUNT(*) NR_EXEC
FROM dba_hist_sql_plan p
WHERE p.object_name = '&2'
GROUP BY
P.dbid,
P.sql_id,
P.OBJECT_OWNER,
p.object_name,
p.options
;
col sql for a101
col nr_exec for 999G990

SELECT
DBMS_LOB.SUBSTR (ltrim(rtrim(t.sql_text)), 100, 1) sql,
count(*) NR_EXEC
FROM dba_hist_sqltext t
WHERE EXISTS ( SELECT 1
FROM dba_hist_sql_plan p
WHERE p.object_name = '&3'
AND t.dbid=p.dbid
AND t.sql_id=p.sql_id
)
GROUP BY
DBMS_LOB.SUBSTR (ltrim(rtrim(t.sql_text)), 100, 1)
;

col object_name for a35


col index_operation for a30
col total_megs for 999,999,999,999
col total_exec for 999,999,999

break on total_megs skip 1

with top_index as
(
select * from (
select
owner,
segment_name,
sum(bytes/1024/1024) as total_megs,
tablespace_name
from dba_segments
where
segment_name in (
select index_name
from dba_indexes
where
owner not in ('SYS', 'SYSTEM',
'SYSMAN','TSMSYS','DBSNMP','OUTLN'))
group by owner, segment_name, tablespace_name
order by total_megs desc
)
where
rownum <= 100
)
select
sp.object_owner,
sp.object_name,
decode( options, null, ' -', options) index_operation,
ti.total_megs,
count(sp.operation) total_exec,
min(sp.timestamp) min_exec_date,
max(sp.timestamp) max_exec_date
from dba_hist_sql_plan sp, top_index ti
where
sp.object_owner = ti.owner
and sp.object_name = ti.segment_name
group by
sp.object_owner,
sp.object_name,
decode( options, null, ' -', options),
ti.total_megs
order by
ti.total_megs desc,
sp.object_owner,
sp.object_name,
total_exec desc;

select
p.object_name c1,
p.operation c2,
p.options c3,
count(1) c4
from
dba_hist_sql_plan p,
dba_hist_sqlstat s
where
p.object_owner <> 'SYS'
and
p.operation like '%INDEX%'
and
p.sql_id = s.sql_id
group by
p.object_name,
p.operation,
p.options
order by
1,4,2,3

select
p.object_name "object",
to_char(sn.begin_interval_time,'yyyy-mm') "Begin|Interval|time",
p.search_columns "Search Columns",
count(*) "Invocation|Count"
from
dba_hist_snapshot sn,
dba_hist_sql_plan p,
dba_hist_sqlstat st
where
st.sql_id = p.sql_id
and
sn.snap_id = st.snap_id
and
p.object_name like '%PERF_YFS_SHIPMENT_IDX01%'
group by
p.object_name,to_char(sn.begin_interval_time,'yyyy-mm'),search_columns

select
to_char(sn.begin_interval_time,'yy-mm-dd hh24') c1,
p.search_columns c2,
count(*) c3,st.sql_id
from
dba_hist_snapshot sn,
dba_hist_sql_plan p,
dba_hist_sqlstat st
where
st.sql_id = p.sql_id
and
sn.snap_id = st.snap_id
and
lower(object_name) like lower('%&idx_name%')
group by
begin_interval_time,search_columns,st.sql_id
order by 1 desc

201701302027412031798831

select inst_id ,sql_fulltext from gv$sql where sql_id='0dp5qqru32499'

SELECT /*YANTRA*/ YFS_ORDER_HEADER.ORDER_HEADER_KEY,YFS_ORDER_HEADER.LOCKID


FROM thd01.YFS_ORDER_HEADER YFS_ORDER_HEADER WHERE ORDER_CLOSED = :1
AND NEXT_ALERT_TS <= :2 AND ENTERPRISE_KEY = :3 AND DOCUMENT_TYPE = :4 AND
ORDER_HEADER_KEY > :5 ORDER BY ORDER_HEADER_KEY
select sql_fulltext from gv$sql where sql_id='d4ucmkj9r3q7g'

SELECT /*YANTRA*/ YFS_ORDER_HEADER.ORDER_HEADER_KEY,YFS_ORDER_HEADER.LOCKID


FROM thd01.YFS_ORDER_HEADER YFS_ORDER_HEADER WHERE ORDER_CLOSED = 'Y'
AND NEXT_ALERT_TS <= '08-FEB-17'
AND ENTERPRISE_KEY = 'HDUS' AND DOCUMENT_TYPE = '0005'
AND ORDER_HEADER_KEY > '201701302027412031798831' ORDER BY ORDER_HEADER_KEY

select count(*), wait_class, event, o.object_name, session_state


from gv$active_session_history h, dba_objects o
where is_sqlid_current = 'Y'
and in_sql_execution = 'Y'
and sample_time between TO_DATE('23/03/2017 10:20:00', 'DD/MM/YYYY HH24:MI:SS') and
TO_DATE('23/03/2017 14:44:00', 'DD/MM/YYYY HH24:MI:SS')
and h.current_obj# = o.object_id --and o.object_name='PERF_YFS_ORDER_LINE_IDX11'
group by wait_class, event, o.object_name, session_state
order by 1 desc;

SELECT snap_id, begin_interval_time, end_interval_time, startup_time


FROM dba_hist_snapshot
WHERE begin_interval_time > TRUNC(SYSTIMESTAMP-1)
ORDER BY snap_id;

SELECT system.DBMS_ADDM.compare_databases (
base_begin_snap_id => 82504,
base_end_snap_id => 82524,
comp_begin_snap_id => 82408,
comp_end_snap_id => 82428,
report_type => 'HTML') AS report
FROM dual;
SPOOL OFF

select count(*), wait_class, event, o.object_name, session_state


from DBA_hIST_ACTIVE_SESS_HISTORY h, dba_objects o
where is_sqlid_current = 'Y'
and in_sql_execution = 'Y'
and sample_time between TO_DATE('21/03/2017 10:20:00', 'DD/MM/YYYY HH24:MI:SS')
and TO_DATE('21/03/2017 14:00:00', 'DD/MM/YYYY HH24:MI:SS')
and h.current_obj# = o.object_id and o.object_name='PERF_YFS_ORDER_LINE_IDX11'
group by wait_class, event, o.object_name, session_state
order by 1 desc;

select sql_id,sql_fulltext from gv$sql where sql_text like '%YFS_ORDER_LINE%'

SELECT person_info_key FROM YFS_PERSON_INFO where FIRST_NAME = :"SYS_B_00"


AND LAST_NAME = :"SYS_B_01" AND ADDRESS_LINE1 = :"SYS_B_02" AND ADDRESS_LINE2
= :"SYS_B_03"
AND ADDRESS_LINE3 = :"SYS_B_04" AND ADDRESS_LINE4 = :"SYS_B_05" AND ADDRESS_LINE5
= :"SYS_B_06"
AND STATE = :"SYS_B_07" AND CITY = :"SYS_B_08" AND ZIP_CODE = :"SYS_B_09" AND
COUNTRY = :"SYS_B_10" AND DAY_PHONE = :"SYS_B_11"
AND TITLE = :"SYS_B_12" AND SUFFIX = :"SYS_B_13" AND EVENING_PHONE = :"SYS_B_14"
AND DAY_FAX_NO = :"SYS_B_15"
AND OTHER_PHONE = :"SYS_B_16" AND MOBILE_PHONE = :"SYS_B_17"
AND MIDDLE_NAME = :"SYS_B_18" AND BEEPER = :"SYS_B_19"
AND EMAILID = :"SYS_B_20" AND TAX_GEO_CODE IS NULL order by person_info_key desc

SELECT NULL INST, NULL SID, NULL SQL_ID, NULL SQL_EXEC_ID, NULL SQL_EXEC_START,
NULL BIND_NAME, NULL BIND_VALUE, NULL BIND_TYPE FROM DUAL WHERE 1 = 0
UNION ALL (
SELECT NULL INST, NULL SID, NULL SQL_ID, NULL SQL_EXEC_ID, NULL SQL_EXEC_START,
NULL BIND_NAME, NULL BIND_VALUE, NULL BIND_TYPE FROM DUAL WHERE 1 = 0
) UNION ALL ( SELECT * FROM (
WITH BASIS_INFO AS
( SELECT
DECODE(INSTANCE_NUMBER, -1, USERENV('INSTANCE'), INSTANCE_NUMBER)
INSTANCE_NUMBER,
SESSION_ID,
SQL_ID,
SQL_EXEC_ID,
STATUS
FROM
( SELECT
-1 INSTANCE_NUMBER,
-1 SESSION_ID,
'&sql_id' SQL_ID,
-1 SQL_EXEC_ID,
'%' STATUS /* EXECUTING, DONE
(ERROR), DONE (FIRST N ROWS), DONE (ALL ROWS) or DONE */
FROM
DUAL
)
)
SELECT
DECODE(BV.POS, 1,
TO_CHAR(SM.INST_ID, 990), NULL) INST,
DECODE(BV.POS, 1,
TO_CHAR(SM.SID, 99990), NULL) SID,
DECODE(BV.POS, 1,
SM.SQL_ID, NULL) SQL_ID,
DECODE(BV.POS, 1,
TO_CHAR(SM.SQL_EXEC_ID, 9999999990), NULL) SQL_EXEC_ID,
DECODE(BV.POS, 1,
TO_CHAR(SM.SQL_EXEC_START, 'dd.mm.yyyy hh24:mi:ss'), NULL) SQL_EXEC_START,
BV.NAME BIND_NAME,
BV.VALUE BIND_VALUE,
BV.TYPE BIND_TYPE
FROM
BASIS_INFO BI,
GV$SQL_MONITOR
SM,
XMLTABLE

( '/binds/bind'
PASSING
XMLTYPE(SM.BINDS_XML)

COLUMNS NAME VARCHAR2(30) PATH '@name',

VALUE VARCHAR2(4000) PATH '.',

TYPE VARCHAR2(15) PATH '@dtystr',

POS NUMBER PATH '@pos'

) BV

WHERE

( BI.INSTANCE_NUMBER = -1 OR BI.INSTANCE_NUMBER =
SM.INST_ID ) AND

( BI.SESSION_ID = -1 OR SM.SID = BI.SESSION_ID ) AND

SM.BINDS_XML IS NOT NULL AND

SM.SQL_ID LIKE BI.SQL_ID AND

( BI.SQL_EXEC_ID = -1 OR SM.SQL_EXEC_ID =
BI.SQL_EXEC_ID ) AND

SM.STATUS LIKE BI.STATUS

ORDER BY

SM.SQL_EXEC_START DESC,

SM.INST_ID,

SM.SID,

SM.SQL_ID,

SM.SQL_EXEC_ID,

BV.POS

));
SELECT /*YANTRA*/ YFS_ORDER_RELEASE_STATUS.* FROM YFS_ORDER_RELEASE_STATUS
YFS_ORDER_RELEASE_STATUS
WHERE STATUS_QUANTITY = :1 AND ORDER_HEADER_KEY = :2
ORDER BY ORDER_HEADER_KEY, ORDER_LINE_KEY, ORDER_RELEASE_KEY, STATUS,
ORDER_LINE_SCHEDULE_KEY

select sql_fulltext from gv$sql where sql_id='2pja2870cx03q'


SELECT /* YANTRA */ COUNT(*), QUEUE_KEY FROM YFS_INBOX WHERE ((( QUEUE_KEY
= :"SYS_B_00" OR QUEUE_KEY = :"SYS_B_01" OR QUEUE_KEY = :"SYS_B_02"
OR QUEUE_KEY = :"SYS_B_03" OR QUEUE_KEY = :"SYS_B_04" OR QUEUE_KEY = :"SYS_B_05" OR
QUEUE_KEY = :"SYS_B_06"
OR QUEUE_KEY = :"SYS_B_07" OR QUEUE_KEY = :"SYS_B_08" OR QUEUE_KEY = :"SYS_B_09" OR
QUEUE_KEY = :"SYS_B_10")
AND ACTIVE_FLAG=:"SYS_B_11"))GROUP BY QUEUE_KEY

SELECT inst_id, plan_hash_value,


LPAD(TO_CHAR(executions, '999,999,999,999,990'), 20) executions,
LPAD(TO_CHAR(rows_processed, '999,999,999,999,990'), 20) rows_processed,
LPAD(TO_CHAR(buffer_gets, '999,999,999,999,990'), 20) buffer_gets,
LPAD(TO_CHAR(disk_reads, '999,999,999,999,990'), 20) disk_reads,
LPAD(TO_CHAR(direct_writes, '999,999,999,999,990'), 20) direct_writes,
LPAD(TO_CHAR(ROUND(elapsed_time/1e6, 3), '999,999,990.000'), 18)
elsapsed_secs,
LPAD(TO_CHAR(ROUND(cpu_time/1e6, 3), '999,999,990.000'), 18) cpu_secs,
LPAD(TO_CHAR(ROUND(user_io_wait_time/1e6, 3), '999,999,990.000'), 18)
user_io_wait_secs,
LPAD(TO_CHAR(ROUND(cluster_wait_time/1e6, 3), '999,999,990.000'), 18)
cluster_wait_secs,
LPAD(TO_CHAR(ROUND(application_wait_time/1e6, 3), '999,999,990.000'), 18)
appl_wait_secs,
LPAD(TO_CHAR(ROUND(concurrency_wait_time/1e6, 3), '999,999,990.000'), 18)
conc_wait_secs,
LPAD(TO_CHAR(ROUND(plsql_exec_time/1e6, 3), '999,999,990.000'), 18)
plsql_exec_secs,
LPAD(TO_CHAR(ROUND(java_exec_time/1e6, 3), '999,999,990.000'), 18)
java_exec_secs
,
LPAD(TO_CHAR(io_cell_offload_eligible_bytes, '999,999,999,999,999,999,990'),
30) io_cell_offload_eligible_bytes,
LPAD(TO_CHAR(io_interconnect_bytes, '999,999,999,999,999,999,990'), 30)
io_interconnect_bytes,
CASE
WHEN io_cell_offload_eligible_bytes > io_interconnect_bytes THEN
LPAD(TO_CHAR(ROUND(
(io_cell_offload_eligible_bytes - io_interconnect_bytes) * 100 /
io_cell_offload_eligible_bytes
, 2), '990.00')||' %', 8) END io_saved
FROM gv$sqlstats_plan_hash
WHERE sql_id = 'c9jfnv6k4jb7b'
ORDER BY 1, 2

SELECT inst_id, plan_hash_value,


LPAD(TO_CHAR(executions, '999,999,999,999,990'), 20) executions,
LPAD(TO_CHAR(rows_processed, '999,999,999,999,990'), 20) rows_processed,
LPAD(TO_CHAR(buffer_gets, '999,999,999,999,990'), 20) buffer_gets,
LPAD(TO_CHAR(disk_reads, '999,999,999,999,990'), 20) disk_reads,
LPAD(TO_CHAR(direct_writes, '999,999,999,999,990'), 20) direct_writes,
LPAD(TO_CHAR(ROUND(elapsed_time/1e6, 3), '999,999,990.000'), 18)
elsapsed_secs,
LPAD(TO_CHAR(ROUND(cpu_time/1e6, 3), '999,999,990.000'), 18) cpu_secs,
LPAD(TO_CHAR(ROUND(user_io_wait_time/1e6, 3), '999,999,990.000'), 18)
user_io_wait_secs,
LPAD(TO_CHAR(ROUND(cluster_wait_time/1e6, 3), '999,999,990.000'), 18)
cluster_wait_secs,
LPAD(TO_CHAR(ROUND(application_wait_time/1e6, 3), '999,999,990.000'), 18)
appl_wait_secs,
LPAD(TO_CHAR(ROUND(concurrency_wait_time/1e6, 3), '999,999,990.000'), 18)
conc_wait_secs,
LPAD(TO_CHAR(ROUND(plsql_exec_time/1e6, 3), '999,999,990.000'), 18)
plsql_exec_secs,
LPAD(TO_CHAR(ROUND(java_exec_time/1e6, 3), '999,999,990.000'), 18)
java_exec_secs
,
LPAD(TO_CHAR(io_cell_offload_eligible_bytes, '999,999,999,999,999,999,990'),
30) io_cell_offload_eligible_bytes,
LPAD(TO_CHAR(io_interconnect_bytes, '999,999,999,999,999,999,990'), 30)
io_interconnect_bytes,
CASE
WHEN io_cell_offload_eligible_bytes > io_interconnect_bytes THEN
LPAD(TO_CHAR(ROUND(
(io_cell_offload_eligible_bytes - io_interconnect_bytes) * 100 /
io_cell_offload_eligible_bytes
, 2), '990.00')||' %', 8) END io_saved
FROM gv$sqlstats_plan_hash
WHERE sql_id = '78h54s70y7ctc'
ORDER BY 1, 2;

SELECT s.snap_id,
TO_CHAR(s.begin_interval_time, 'YYYY-MM-DD DY HH24:MI:SS')
begin_interval_time,
TO_CHAR(s.end_interval_time, 'YYYY-MM-DD DY HH24:MI:SS') end_interval_time,
s.instance_number, h.plan_hash_value,
DECODE(h.loaded_versions, 1, 'Y', 'N') loaded,
LPAD(TO_CHAR(h.executions_total, '999,999,999,999,990'), 20) executions,
LPAD(TO_CHAR(ROUND(h.elapsed_time_total/1e6, 3), '999,999,990.000'), 18)
elsapsed_secs,
LPAD(TO_CHAR(h.rows_processed_total, '999,999,999,999,990'), 20)
rows_processed,
LPAD(TO_CHAR(h.buffer_gets_total, '999,999,999,999,990'), 20) buffer_gets,
LPAD(TO_CHAR(h.disk_reads_total, '999,999,999,999,990'), 20) disk_reads,
LPAD(TO_CHAR(h.direct_writes_total, '999,999,999,999,990'), 20)
direct_writes,
LPAD(TO_CHAR(ROUND(h.cpu_time_total/1e6, 3), '999,999,990.000'), 18)
cpu_secs,
LPAD(TO_CHAR(ROUND(h.iowait_total/1e6, 3), '999,999,990.000'), 18)
user_io_wait_secs,
LPAD(TO_CHAR(ROUND(h.clwait_total/1e6, 3), '999,999,990.000'), 18)
cluster_wait_secs,
LPAD(TO_CHAR(ROUND(h.apwait_total/1e6, 3), '999,999,990.000'), 18)
appl_wait_secs,
LPAD(TO_CHAR(ROUND(h.ccwait_total/1e6, 3), '999,999,990.000'), 18)
conc_wait_secs,
LPAD(TO_CHAR(ROUND(h.plsexec_time_total/1e6, 3), '999,999,990.000'), 18)
plsql_exec_secs,
LPAD(TO_CHAR(ROUND(h.javexec_time_total/1e6, 3), '999,999,990.000'), 18)
java_exec_secs
,
LPAD(TO_CHAR(h.io_offload_elig_bytes_total, '999,999,999,999,999,999,990'),
30) io_cell_offload_eligible_bytes,
LPAD(TO_CHAR(h.io_interconnect_bytes_total, '999,999,999,999,999,999,990'),
30) io_interconnect_bytes,
CASE
WHEN h.io_offload_elig_bytes_total > h.io_interconnect_bytes_total THEN
LPAD(TO_CHAR(ROUND(
(h.io_offload_elig_bytes_total - h.io_interconnect_bytes_total) * 100 /
h.io_offload_elig_bytes_total
, 2), '990.00')||' %', 8) END io_saved
FROM dba_hist_sqlstat h,
dba_hist_snapshot s
WHERE --:license = 'Y'
h.dbid = 2879820670
AND h.sql_id = 'c9jfnv6k4jb7b'
AND s.snap_id = h.snap_id
AND s.dbid = h.dbid
AND s.instance_number = h.instance_number
ORDER BY 2 Desc;

SELECT s.snap_id,
TO_CHAR(s.begin_interval_time, 'YYYY-MM-DD DY HH24:MI:SS')
begin_interval_time,
TO_CHAR(s.end_interval_time, 'YYYY-MM-DD DY HH24:MI:SS') end_interval_time,
s.instance_number, h.plan_hash_value,
DECODE(h.loaded_versions, 1, 'Y', 'N') loaded,
LPAD(TO_CHAR(h.executions_delta, '999,999,999,999,990'), 20) executions,
LPAD(TO_CHAR(ROUND(h.elapsed_time_delta/1e6, 3), '999,999,990.000'), 18)
elsapsed_secs,
LPAD(TO_CHAR(h.rows_processed_delta, '999,999,999,999,990'), 20)
rows_processed,
LPAD(TO_CHAR(h.buffer_gets_delta, '999,999,999,999,990'), 20) buffer_gets,
LPAD(TO_CHAR(h.disk_reads_delta, '999,999,999,999,990'), 20) disk_reads,
LPAD(TO_CHAR(h.direct_writes_delta, '999,999,999,999,990'), 20)
direct_writes,
LPAD(TO_CHAR(ROUND(h.cpu_time_delta/1e6, 3), '999,999,990.000'), 18)
cpu_secs,
LPAD(TO_CHAR(ROUND(h.iowait_delta/1e6, 3), '999,999,990.000'), 18)
user_io_wait_secs,
LPAD(TO_CHAR(ROUND(h.clwait_delta/1e6, 3), '999,999,990.000'), 18)
cluster_wait_secs,
LPAD(TO_CHAR(ROUND(h.apwait_delta/1e6, 3), '999,999,990.000'), 18)
appl_wait_secs,
LPAD(TO_CHAR(ROUND(h.ccwait_delta/1e6, 3), '999,999,990.000'), 18)
conc_wait_secs,
LPAD(TO_CHAR(ROUND(h.plsexec_time_delta/1e6, 3), '999,999,990.000'), 18)
plsql_exec_secs,
LPAD(TO_CHAR(ROUND(h.javexec_time_delta/1e6, 3), '999,999,990.000'), 18)
java_exec_secs
,
LPAD(TO_CHAR(h.io_offload_elig_bytes_delta, '999,999,999,999,999,999,990'),
30) io_cell_offload_eligible_bytes,
LPAD(TO_CHAR(h.io_interconnect_bytes_delta, '999,999,999,999,999,999,990'),
30) io_interconnect_bytes,
CASE
WHEN h.io_offload_elig_bytes_delta > h.io_interconnect_bytes_delta THEN
LPAD(TO_CHAR(ROUND(
(h.io_offload_elig_bytes_delta - h.io_interconnect_bytes_delta) * 100 /
h.io_offload_elig_bytes_delta
, 2), '990.00')||' %', 8) END io_saved
FROM dba_hist_sqlstat h,
dba_hist_snapshot s
WHERE :license = 'Y'
AND h.dbid = :dbid
AND h.sql_id = '&&sql_id.'
AND s.snap_id = h.snap_id
AND s.dbid = h.dbid
AND s.instance_number = h.instance_number
ORDER BY 1, 4, 5;

select * from Gv$sqlstats where sql_id='c9jfnv6k4jb7b'

select
snap_id,
to_char(begin_interval_time,'YYYY-MM-DD HH24:MI') as begin_hour,
executions_delta as execs_per_hour,
buffer_gets_delta as gets_per_hour,
round(buffer_gets_delta/executions_delta) as
gets_per_exec,CLWAIT_TOTAL,CLWAIT_DELTA,
round(elapsed_time_delta/1000000) as seconds_per_hour
from
dba_hist_snapshot natural join dba_hist_sqlstat
where
begin_interval_time between to_date('2017-03-23 10:00', 'YYYY-MM-DD HH24:MI')
and to_date('2017-03-23 15:00', 'YYYY-MM-DD HH24:MI')
and
sql_id = '0zpfh97badnfy'
and
executions_delta > 0
order by
snap_id
;

You might also like