oracle对比报告awrdif,数据库性能 常用SQL

AWR Objects

Source

{ORACLE_HOME}/rdbms/admin/dbmsawr.sql

First Availability

10.1

Background Process

MMON - Automatic data purging every 7 days by default

Constants

Name

Retention

Data Type

Value

MAX_INTERVAL

100 years

NUMBER

52560000

MIN_INTERVAL

10 minutes

NUMBER

10

MAX_RETENTION

100 years

NUMBER

52560000

MIN_RETENTION

1 day

NUMBER

1440

Data Types

AWRRPT_TEXT_TYPE

AWRRPT_HTML_TYPE

AWRRPT_TEXT_TYPE_TABLE

AWRRPT_HTML_TYPE_TABLE

SYS AWRRPT_ROW_TYPE

Dependencies

dba_hist_baseline

dba_hist_snapshot

-

-

awrrpt_html_type

plitblm

awrrpt_html_type_table

wrm$_baseline

awrrpt_text_type

wrm$_snapshot

awrrpt_type_table

wrm$_snap_error

dbms_swrf_lib

wrm$_wr_control

dbms_swrf_report_internal

File that create the AWR schema

{ORACLE_HOME}/rdbms/admin/catawr.sql

{ORACLE_HOME}/rdbms/admin/catawrpd.sql

{ORACLE_HOME}/rdbms/admin/catawrtb.sql

{ORACLE_HOME}/rdbms/admin/catawrwv.sql

-- must be run as SYSDBA

ADD_COLORED_SQL (new 11g)

Routine to add a colored SQL ID. If an SQL ID is colored, it will always be captured in every snapshot, independent of its level of activities (i.e. does not have to be a TOP SQL). Capturing will occur if the SQL is found in the cursor cache at snapshot time.

dbms_workload_repository.add_colored_sql(sql_id IN VARCHAR2,

dbid   IN NUMBER DEFAULT NULL);

desc wrm$_colored_sql

SELECT * FROM wrm$_colored_sql;

SELECT dbid

FROM gv$database;

SELECT sql_id

FROM gv$sql

WHERE rownum < 101;

exec dbms_workload_repository.add_colored_sql('5rygsj4dbw6jt', 1692970157);

SELECT * FROM wrm$_colored_sql;

ASH_REPORT_HTML (new 11g)

Display the ASH report in HTML

dbms_workload_repository.ash_report_html(

l_dbid         IN NUMBER,

l_inst_num     IN NUMBER,

l_btime        IN DATE,

l_etime        IN DATE,

l_options      IN NUMBER DEFAULT 0,

l_slot_width   IN NUMBER DEFAULT 0,

l_sid          IN NUMBER DEFAULT NULL,

l_sql_id       IN VARCHAR2 DEFAULT NULL,

l_wait_class   IN VARCHAR2 DEFAULT NULL,

l_service_hash IN NUMBER DEFAULT NULL,

l_module       IN VARCHAR2 DEFAULT NULL,

l_action       IN VARCHAR2 DEFAULT NULL,

l_client_id    IN VARCHAR2 DEFAULT NULL,

l_plsql_entry  IN VARCHAR2 DEFAULT NULL)

RETURN awrrpt_html_type_table PIPELINED;

SELECT dbid

FROM gv$database;

SELECT inst_id

FROM gv$instance;

SELECT sample_time

FROM gv$active_session_history

ORDER BY 1;

set pagesize 0

set linesize 121

spool c:\temp\ash_rpt.html

SELECT * FROM TABLE(dbms_workload_repository.ash_report_html(1692970157, 1, SYSDATE-30/1440, SYSDATE-1/1440));

spool off

Alternative ASH HTML Report

define report_type = 'html';

define begin_time = '-30'

define duration = '';

define report_name = 'c:\temp\ashrpt.html';

@?/rdbms/admin/ashrpt

Alternative ASH HTML Report

define report_type = 'html';

define begin_time = '-30'

define duration = '';

define report_name = 'c:\temp\ashrpt.html';

@?/rdbms/admin/ashrpti

ASH_REPORT_TEXT (new 11g)

Display the ASH report in TEXT

dbms_workload_repository.ash_report_text(

l_dbid         IN NUMBER,

l_inst_num     IN NUMBER,

l_btime        IN DATE,

l_etime        IN DATE,

l_options      IN NUMBER DEFAULT 0,

l_slot_width   IN NUMBER DEFAULT 0,

l_sid          IN NUMBER DEFAULT NULL,

l_sql_id       IN VARCHAR2 DEFAULT NULL,

l_wait_class   IN VARCHAR2 DEFAULT NULL,

l_service_hash IN NUMBER DEFAULT NULL,

l_module       IN VARCHAR2 DEFAULT NULL,

l_action       IN VARCHAR2 DEFAULT NULL,

l_client_id    IN VARCHAR2 DEFAULT NULL,

l_plsql_entry  IN VARCHAR2 DEFAULT NULL)

RETURN awrrpt_text_type_table PIPELINED;

SELECT dbid

FROM gv$database;

SELECT inst_id

FROM gv$instance;

SELECT sample_time

FROM gv$active_session_history

ORDER BY 1;

set pagesize 0

set linesize 121

spool c:\temp\ash_rpt.html

SELECT * FROM TABLE(dbms_workload_repository.ash_report_text(1692970157, 1, SYSDATE-30/1440, SYSDATE-1/1440));

spool off

Alternative ASH Text Report

define report_type = 'text';

define begin_time = '-30'

define duration = '';

define report_name = 'c:\temp\ashrpt.txt';

@?/rdbms/admin/ashrpt

Alternative ASH Text Report

define report_type = 'text';

define begin_time = '-30'

define duration = '';

define report_name = 'c:\temp\ashrpt.txt';

@?/rdbms/admin/ashrpti

AWR_DIFF_REPORT_HTML (new 11g)

This table function displays the

AWR Compare Periods Report in HTML format. The output

is one column of VARCHAR2(5000).

dbms_workload_repository.awr_diff_report_html(

dbid1     IN NUMBER,

inst_num1 IN NUMBER,

bid1      IN NUMBER,

eid1      IN NUMBER,

dbid2     IN NUMBER,

inst_num2 IN NUMBER,

bid2      IN NUMBER,

eid2      IN NUMBER)

RETURN awrrpt_html_type_table PIPELINED;

TBD

AWR_DIFF_REPORT_TEXT (new 11g)

This table function displays the

AWR Compare Periods Report in TEXT format. The output

is one column of VARCHAR2(240).

dbms_workload_repository.awr_diff_report_text(

awr_diff_report_text(dbid1 IN NUMBER,

inst_num1 IN NUMBER,

bid1      IN NUMBER,

eid1      IN NUMBER,

dbid2     IN NUMBER,

inst_num2 IN NUMBER,

bid2      IN NUMBER,

eid2      IN NUMBER)

RETURN awrdrpt_text_type_table PIPELINED;

TBD

AWR_REPORT_HTML

Display the AWR report in HTML

dbms_workload_repository.awr_report_html(

l_dbid     IN NUMBER,

l_inst_num IN NUMBER,

l_bid      IN NUMBER,

l_eid      IN NUMBER,

l_options  IN NUMBER DEFAULT 0)

RETURN awrrpt_text_type_table PIPELINED;

awrrpt_text_type_table is VARCHAR2(150)

See AWR Report demo linked at the bottom of the page

AWR_REPORT_TEXT

Display the AWR report in ASCII text

dbms_workload_repository.awr_report_text(

l_dbid     IN NUMBER,

l_inst_num IN NUMBER,

l_bid      IN NUMBER,

l_eid      IN NUMBER,

l_options  IN NUMBER DEFAULT 0)

RETURN awrrpt_text_type_table PIPELINED;

awrrpt_text_type_table is VARCHAR2(80)

See AWR Report demo linked at the bottom of the page

AWR_SQL_REPORT_HTML (new 11g)

Display the AWR SQL report in HTML

dbms_workload_repository.awr_sql_report_html(

l_dbid     IN NUMBER,

l_inst_num IN NUMBER,

l_bid      IN NUMBER,

l_eid      IN NUMBER,

l_sqlid    IN VARCHAR2,

l_options  IN NUMBER DEFAULT 0)

RETURN awrrpt_html_type_table PIPELINED;

SELECT dbid

FROM gv$database;

SELECT inst_id

FROM gv$instance;

set pagesize 0

set linesize 121

col instart_fmt noprint;

col inst_name format a12 heading 'Instance';

col db_name format a12 heading 'DB Name';

col snap_id format 99999990 heading 'Snap Id';

col snapdat format a18 heading 'Snap Started' just c;

col lvl format 99 heading 'Snap|Level';

set heading on;

break on inst_name on db_name on host on instart_fmt skip 1;

ttitle off;

SELECT TO_CHAR(s.startup_time,' DD MON "at" HH24:MI:SS') INSTART_FMT,

di.instance_name INST_NAME, di.db_name DB_NAME, s.snap_id SNAP_ID,

TO_CHAR(s.end_interval_time,'DD MON YYYY HH24:MI') SNAPDAT,

s.snap_level LVL

FROM dba_hist_snapshot s, dba_hist_database_instance di

WHERE di.dbid = s.dbid

AND di.instance_number = s.instance_number

AND di.startup_time = s.startup_time

ORDER BY snap_id;

SELECT sql_id

FROM gv$active_session_history

WHERE TRUNC(sql_exec_start) = TRUNC(SYSDATE);

spool c:\temp\awr_sql_rpt.html

SELECT * FROM TABLE(dbms_workload_repository.awr_sql_report_html(1692970157, 1, 1230, 1231, 'a01hp0psv0rrh'));

spool off

AWR_SQL_REPORT_TEXT (new 11g)

Display the AWR SQL report in TEXT

dbms_workload_repository.awr_sql_report_text(

l_dbid     IN NUMBER,

l_inst_num IN NUMBER,

l_bid      IN NUMBER,

l_eid      IN NUMBER,

l_sqlid    IN VARCHAR2,

l_options  IN NUMBER DEFAULT 0)

RETURN awrsqrpt_text_type_table PIPELINED;

SELECT dbid

FROM gv$database;

SELECT inst_id

FROM gv$instance;

set pagesize 0

set linesize 121

col instart_fmt noprint;

col inst_name format a12 heading 'Instance';

col db_name format a12 heading 'DB Name';

col snap_id format 99999990 heading 'Snap Id';

col snapdat format a18 heading 'Snap Started' just c;

col lvl format 99 heading 'Snap|Level';

set heading on;

break on inst_name on db_name on host on instart_fmt skip 1;

ttitle off;

SELECT TO_CHAR(s.startup_time,' DD MON "at" HH24:MI:SS') INSTART_FMT,

di.instance_name INST_NAME, di.db_name DB_NAME, s.snap_id SNAP_ID,

TO_CHAR(s.end_interval_time,'DD MON YYYY HH24:MI') SNAPDAT,

s.snap_level LVL

FROM dba_hist_snapshot s, dba_hist_database_instance di

WHERE di.dbid = s.dbid

AND di.instance_number = s.instance_number

AND di.startup_time = s.startup_time

ORDER BY snap_id;

SELECT sql_id

FROM gv$active_session_history

WHERE TRUNC(sql_exec_start) = TRUNC(SYSDATE);

spool c:\temp\awr_sql_rpt.txt

SELECT * FROM TABLE(dbms_workload_repository.awr_sql_report_text(1692970157, 1, 1230, 1231, 'a01hp0psv0rrh'));

spool off

CREATE_BASELINE (new 11g parameter)

Creates a baseline returns the baseline_id

Overload 1

dbms_workload_repository.create_baseline(

start_snap_id IN NUMBER,

end_snap_id   IN NUMBER,

baseline_name IN VARCHAR2,

dbid          IN NUMBER DEFAULT NULL,

expiration    IN NUMBER DEFAULT NULL)

RETURN NUMBER;

SELECT dbid

FROM gv$database;

set linesize 121

col startup_time format a40

SELECT snap_id, startup_time

FROM dba_hist_snapshot

ORDER BY 1,2;

SELECT baseline_name, dbid

FROM dba_hist_baseline;

set serveroutput on

DECLARE

i dba_hist_baseline.baseline_id%TYPE;

BEGIN

i := dbms_workload_repository.create_baseline(1199, 1207,

'UW_BASE', 1692970157);

dbms_output.put_line(TO_CHAR(i));

END;

/

SELECT baseline_id, baseline_name

FROM dba_hist_baseline;

Overload 2

dbms_workload_repository.create_baseline(

start_snap_id IN NUMBER,

end_snap_id   IN NUMBER,

baseline_name IN VARCHAR2,

dbid          IN NUMBER DEFAULT NULL

expiration    IN NUMBER DEFAULT NULL);

SELECT dbid

FROM gv$database;

SELECT snap_id, startup_time

FROM dba_hist_snapshot

ORDER BY 1,2;

SELECT baseline_name, dbid

FROM dba_hist_baseline;

exec dbms_workload_repository.create_baseline(1199, 1207, 'UW_BASE', 1692970157);

SELECT baseline_name, dbid

FROM dba_hist_baseline;

CREATE_BASELINE_TEMPLATE (new 11g)

Creates a Baseline Template for a

single time period. There will be a MMON task that will use these inputs to create a Baseline for the time period when the time comes.

Overload 1

dbms_workload_repository.create_baseline_template(

start_time    IN DATE,

end_time      IN DATE,

baseline_name IN VARCHAR2,

template_name IN VARCHAR2,

expiration    IN NUMBER DEFAULT NULL,

dbid          IN NUMBER DEFAULT NULL);

desc dba_hist_baseline_template

SELECT dbid, template_id, template_name, template_type

FROM dba_hist_baseline_template;

SELECT baseline_name, dbid

FROM dba_hist_baseline;

exec dbms_workload_repository.create_baseline_template(SYSDATE+1/1440, SYSDATE+5/1440, 'UW_BASE2', 'UW_TEMPLATE', 1);

SELECT dbid, template_id, template_name, template_type

FROM dba_hist_baseline_template;

Overload 2

dbms_workload_repository.create_baseline_template(

day_of_week          IN VARCHAR2,

hour_in_day          IN NUMBER,

duration             IN NUMBER,

start_time           IN DATE,

end_time             IN DATE,

baseline_name_prefix IN VARCHAR2,

template_name        IN VARCHAR2,

expiration           IN NUMBER DEFAULT 35,

dbid                 IN NUMBER DEFAULT NULL);

TBD

CREATE_SNAPSHOT

Create snapshot and return snapshot ID

Overload 1

dbms_workload_repository.create_snapshot(

flush_level IN VARCHAR2 DEFAULT 'TYPICAL') RETURN NUMBER;

Flush Levels

ALL

TYPICAL

set linesize 121

col begin_interval_time format a30

col end_interval_time format a30

SELECT snap_id, startup_time, begin_interval_time, end_interval_time

FROM dba_hist_snapshot

ORDER BY 1,2;

set serveroutput on

DECLARE

i dba_hist_snapshot.snap_id%TYPE;

BEGIN

i := dbms_workload_repository.create_snapshot;

dbms_output.put_line(TO_CHAR(i));

END;

/

SELECT snap_id, startup_time, begin_interval_time, end_interval_time

FROM dba_hist_snapshot

ORDER BY 1,2;

Overload 2

dbms_workload_repository.create_snapshot(

flush_level IN VARCHAR2 DEFAULT 'TYPICAL');

Flush Levels

ALL

TYPICAL

set linesize 121

col begin_interval_time format a30

col end_interval_time format a30

SELECT snap_id, startup_time, begin_interval_time, end_interval_time

FROM dba_hist_snapshot

ORDER BY 1,2;

exec dbms_workload_repository.create_snapshot;

SELECT snap_id, startup_time, begin_interval_time, end_interval_time

FROM dba_hist_snapshot

ORDER BY 1,2;

DROP_BASELINE

Drop a baseline

dbms_workload_repository.drop_baseline(

baseline_name IN VARCHAR2,

cascade       IN BOOLEAN DEFAULT FALSE,

dbid          IN NUMBER  DEFAULT NULL);

Cascade

False

Drop baseline but not snapshots

True

Drops baseline and snapshots

SELECT baseline_name, dbid

FROM dba_hist_baseline;

exec dbms_workload_repository.drop_baseline('UW_BASE', FALSE, 1692970157);

SELECT baseline_name, dbid

FROM dba_hist_baseline;

DROP_BASELINE_TEMPLATE (new 11g)

Drops a Baseline Template

dbms_workload_repository.drop_baseline_template(

template_name IN VARCHAR2,

dbid          IN NUMBER DEFAULT NULL);

SELECT dbid, template_id, template_name, template_type

FROM dba_hist_baseline_template;

exec dbms_workload_repository.drop_baseline_template('UW_TEMPLATE');SELECT dbid, template_id, template_name, template_type

FROM dba_hist_baseline_template;

DROP_SNAPSHOT_RANGE

Drop a range of snapshots

dbms_workload_repository.drop_snapshot_Range(

low_snap_id  IN NUMBER,

high_snap_id IN NUMBER

dbid         IN NUMBER DEFAULT NULL);

set linesize 121

col startup_time format a40

SELECT snap_id, startup_time

FROM dba_hist_snapshot

ORDER BY 1,2;

exec dbms_workload_repository.drop_snapshot_range(1105, 1199);

SELECT snap_id, startup_time

FROM dba_hist_snapshot

ORDER BY 1,2;

MODIFY_BASELINE_WINDOW_SIZE (new 11g)

Modifies the window size for the default moving window baseline

Installation default is 8 days

dbms_workload_repository.modify_baseline_window_size(

window_size IN NUMBER,

dbid        IN NUMBER DEFAULT NULL );

set linesize 121

col baseline_name format a30

SELECT dbid, baseline_name, baseline_type, moving_window_size

FROM dba_hist_baseline;

exec dbms_workload_repository.modify_baseline_window_size(5);

SELECT dbid, baseline_name, baseline_type, moving_window_size

FROM dba_hist_baseline;

exec dbms_workload_repository.modify_baseline_window_size(8);

MODIFY_SNAPSHOT_SETTINGS

Modifies the interval between snapshots and/or the retention of snapshots in the repository

Overload 1

dbms_workload_repository.modify_snapshot_settings(

retention IN NUMBER DEFAULT NULL,

interval  IN NUMBER DEFAULT NULL,

topnsqlIN NUMBER DEFAULT NULL,

dbid      IN NUMBER DEFAULT NULL);

Defaults

Retention

7 days = 10080 minutes

Interval

60 minutes *

* Reset to 15-30 min. maximum between snapshots

set linesize 121

col retention format a20

col snap_interval format a20

SELECT retention, snap_interval, topnsql

FROM wrm$_wr_control;

SELECT dbid

FROM gv$database;

exec dbms_workload_repository.modify_snapshot_settings(14400, 20, 1000, 1692970157);

SELECT retention, snap_interval, topnsql

FROM wrm$_wr_control;

Overload 2

dbms_workload_repository.modify_snapshot_settings(

retention IN NUMBER   DEFAULT NULL,

interval  IN NUMBER   DEFAULT NULL,

topnsqlIN VARCHAR2 DEFAULT NULL,

dbid      IN NUMBER   DEFAULT NULL);

Defaults

Retention

7 days = 10080 minutes

Interval

60 minutes *

* Reset to 15-30 min. maximum between snapshots

set linesize 121

col retention format a20

col snap_interval format a20

SELECT retention, snap_interval, topnsql

FROM wrm$_wr_control;

SELECT dbid

FROM gv$database;

exec dbms_workload_repository.modify_snapshot_settings(14400, 20, '1001', 1692970157);

SELECT retention, snap_interval, topnsql

FROM wrm$_wr_control;

REMOVE_COLORED_SQL (new 11g)

Routine to remove a colored SQL ID. If an SQL ID is colored, it will always be captured in every snapshot, independent of its level of activities (i.e. does not have to be a TOP SQL).

dbms_workload_repository.remove_colored_sql(sql_id IN VARCHAR2,

dbid   IN NUMBER DEFAULT NULL );

desc wrm$_colored_sql

SELECT * FROM wrm$_colored_sql;

exec dbms_workload_repository.remove_colored_sql('5rygsj4dbw6jt', 1692970157);

SELECT * FROM wrm$_colored_sql;

RENAME_BASELINE (new 11g)

Rename a baseline

dbms_workload_repository.rename_baseline(

old_baseline_name IN VARCHAR2,

new_baseline_name IN VARCHAR2,

dbid              IN NUMBER DEFAULT NULL);

SELECT dbid, baseline_name, baseline_type

FROM dba_hist_baseline;

exec dbms_workload_repository.rename_baseline('UW_BASE', 'UW_BASE2');

SELECT dbid, baseline_name, baseline_type

FROM dba_hist_baseline;

exec dbms_workload_repository.rename_baseline('UW_BASE', 'UW_BASE');

SELECT_BASELINE_DETAILS (new 11g)

Display baseline statistics

dbms_workload_repository.select_baseline_metrics(

l_baseline_id IN NUMBER,

l_beg_snap IN NUMBER DEFAULT NULL,

l_end_snap IN NUMBER DEFAULT NULL,

l_dbid     IN NUMBER DEFAULT NULL)

RETURN awrbl_details_type_table PIPELINED;

SELECT dbid, baseline_id, baseline_name, baseline_type

FROM dba_hist_baseline;

set linesize 121

col start_snap_time format a30

col end_snap_time format a30

SELECT *

FROM TABLE(dbms_workload_repository.select_baseline_details(1));

SELECT_BASELINE_METRIC (new 11g)

Display metric stats for a baseline

dbms_workload_repository.select_baseline_metric(

l_baseline_name IN VARCHAR2,

l_dbid          IN NUMBER DEFAULT NULL,

l_instance_num  IN NUMBER DEFAULT NULL)

RETURN awrbl_metric_type_table PIPELINED;

SELECT dbid, baseline_id, baseline_name, baseline_type

FROM dba_hist_baseline;

set pagesize 0

set linesize 121

SELECT *

FROM TABLE(dbms_workload_repository.select_baseline_metric(0));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值