Oracle 性能调优工具:SQL Monitor
SQL Monitor 的应用场景主要针对可能存在性能瓶颈的 SQL 进行监控和分析,调用
dbms_sqltune.report_sql_monitor
可以获得相应 SQL 的 HTML 报告。
当 SQL 的执行时间超过 5 秒,会被 SQL Monitor 自动列为监控对象,并会被记录在
v$sql_monitor
视图中。当表开启并行查询时,也会被 SQL Monitor 记录。
SQL Monitor 的报告使用时有两种形式,一种是指定 SID,另一种是指定SQL_ID。
1. 通过查询 v$sql_monitor 视图,检查有哪些慢 SQL 被 SQL Monitor 列入监控。
SELECT
STATUS
,
USERNAME
,
MODULE
,PROGRAM,SID,
SQL_ID
,
SQL_TEXT
FROM
V$SQL_MONITOR
;
2. 通过调用 dbms_sqltune.report_sql_monitor 生成 HTML 的分析报告。
2.1 指定SQL_ID 生成报告, 样式为ACTIVE
SELECT
DBMS_SQLTUNE.REPORT_SQL_MONITOR
(
SQL_ID
=>
'1cg9h05uqz1sn'
,
REPORT_LEVEL
=>
'ALL'
,TYPE=>
'ACTIVE'
)
ROM DUAL
;
2.2 指定SID生成报告,
样式为ACTIVE
SELECT
DBMS_SQLTUNE.REPORT_SQL_MONITOR
(
SESSION_ID
=>
8651
,
REPORT_LEVEL
=>
'ALL'
,TYPE=>
'ACTIVE'
)
FROM
DUAL
;
SQL Monitor 生成的报告类型有多种样式,其中用的多的有 ACTIVE、HTML、TEXT。
ACTIVE
是一种 HTML 的交互页面,可以点击标签页切换内容。
HTML
是个静态页面,
TEXT
是纯文本表格样式。
---ACTIVE 样式
SELECT
DBMS_SQLTUNE.REPORT_SQL_MONITOR
(
SQL_ID
=>
'b09ggu59qcupg'
,TYPE=>
'ACTIVE'
,
REPORT_LEVEL
=>
'ALL'
)
AS
REPORT
FROM
DUAL
;
SELECT
DBMS_SQLTUNE.REPORT_SQL_MONITOR
(
SESSION_ID
=>
8651
,TYPE=>
'ACTIVE'
,
REPORT_LEVEL
=>
'ALL'
)
AS
REPORT
FROM
DUAL
;
---HTML 样式
SELECT
DBMS_SQLTUNE.REPORT_SQL_MONITOR
(
SQL_ID
=>
'b09ggu59qcupg'
,
TYPE=>
'HTML'
,
REPORT_LEVEL
=>
'ALL'
)
AS
REPORT
FROM
DUAL
;
SELECT
DBMS_SQLTUNE.REPORT_SQL_MONITOR
(
SESSION_ID
=>
8651
,TYPE=>
'HTML'
,
REPORT_LEVEL
=>
'ALL'
)
AS
REPORT
FROM
DUAL
;
--TEXT样式
SELECT
DBMS_SQLTUNE.REPORT_SQL_MONITOR
(
SQL_ID
=>
'b09ggu59qcupg'
,
TYPE=>
'TEST'
,
REPORT_LEVEL
=>
'ALL'
)
AS
REPORT
FROM
DUAL
;
SELECT
DBMS_SQLTUNE.REPORT_SQL_MONITOR
(
SESSION_ID
=>
8651
,
TYPE=>
'TEXT'
,
REPORT_LEVEL
=>
'ALL'
)
AS
REPORT
FROM
DUAL
;
3. SQL MONITOR 的监控功能默认会自动开启,默认的参数文件配置为:
SQL>
SHOW
PARAMETER CONTROL_MANAGEMENT_PACK_ACCESS
CONTROL_MANAGEMENT_PACK_ACCESS
STRING
DIAGNOSTIC
+TUNING
SQL>
SHOW
PARAMETER STATISTICS_LEVEL
STATISTICS_LEVEL
STRING
TYPICAL
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10464273/viewspace-3008563/
,如需转载,请注明出处,否则将追究法律责任。