19. (参考)awrcsv.pl by Kyle Hailey
https://github.com/khailey/awrcsv
awrcsv.pl takes a collection of TEXT BASED (NOT HTML!) AWR /
STATSPACK reports and uses meta-data entries stored in a meta-data
directory to determine how to extract sections of data from each of the
AWR files and produce CSV files for use with a spreadsheet application.
The output records are written in descending order of the sum of the
field values. In most cases this is desired for "Top N" type analysis.
21. DBA_HIST_SQLSTAT 取得SQL
set pagesize 50000
set linesize 32767
set trimout on
set trimspool on
set termout off
set feedback off
set colsep '|'
alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
alter session set NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS';
col spool_file_name new_value spool_file_name for a100
select 'dba_hist_sqlstat_'|| to_char(sysdate,'YYYY-MM-DD_HH24MISS')||'.csv' spool_file_name from dual;
spool &spool_file_name
select b.begin_interval_time, b.end_interval_time, a.*
from dba_hist_sqlstat a, dba_hist_snapshot b
where a.dbid = b.dbid and
a.instance_number = b.instance_number and
a.snap_id = b.snap_id and
b.begin_interval_time between
to_timestamp('2016-11-23 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and
to_timestamp('2016-12-10 00:00:00', 'YYYY-MM-DD HH24:MI:SS');
spool off
DBA_HISTビューは基本的に時刻を持ってない
ので、DBA_HIST_SNAPSHOTと結合して
{BEGIN|END}_INTERVAL_TIMEを取得する
https://github.com/yoheia/yoheia/blob/master/oracle/sql/hist_sqlstat.sql
26. DBA_HIST_ASH 取得SQL
set pagesize 50000
set linesize 5000
set trimout on
set trimspool on
set termout off
set feedback off
set colsep '|'
alter session set NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS';
alter session set NLS_TIMESTAMP_FORMAT='YYYY/MM/DD HH24:MI:SS';
col spool_file_name new_value spool_file_name for a100
select 'dash_'|| to_char(sysdate,'YYYY-MM-DD_HH24MISS') || '.csv' spool_file_name from dual;
spool &spool_file_name
SELECT * FROM DBA_HIST_ACTIVE_SESS_HISTORY
WHERE SAMPLE_TIME BETWEEN TO_TIMESTAMP('2016-11-30 9:00:00', 'YYYY/MM/DD HH24:MI:SS')
AND TO_TIMESTAMP('2016-11-30 10:00:00', 'YYYY/MM/DD HH24:MI:SS');
spool off
時刻が秒単位まで表示
されるようにする
https://github.com/yoheia/yoheia/blob/master/oracle/sql/dash.sql
31. SQLHCのススメ
SQL チューニング・ヘルスチェック・スクリプト (SQLHC) (DocID 1542531.1)
• SQLチューニング・ヘルス・チェック・スクリプト(SQLHC)は
My Oracle Support で提供されているPL/SQLスクリプト
• DocID: 1542531.1 から sqlhc.zip をダウンロード・解凍して、sqlplus
で SQL_ID を指定して実行
• 指定した SQL_ID の実行計画、実行時間、参照している表・索引定義、
統計情報、実行計画のボトルネック、SQL監視、Optimizer(10053)ト
レース などを V$ASH、DBA_HIST_ASH、DBA_HIST_SQLSTAT など
からまるっととってくれる便利スクリプト
$ unzip sqlhc.zip
$ cd sqlhc
$ ls
sqldx.sql sqlhc.sql sqlhcxec.sql
$ sqlplus / as sysdba
SQL> @sqlhc.sql T djkbyr8vkc64h
SQL> !ls
sqlhc_20161209_183330_ djkbyr8vkc64h.zip
Tuning Pack有: T
Diagnostic Pack有:D
何もなない:N
32. SQLHCのススメ
1秒間隔のサンプリングで、
110回ヒットしている
Plan Line ID 20 で時間を
要している
Active Session History by Plan Line や AWR Active Session History by
Plan で実行計画のボトルネックの特定が可能(どの操作で時間がかかってい
るか)
sqlhc_YYYYMMDD_HHMMSS_<SQLID>_2_diagnostics.html