久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SQL Monitor Report怎么用

171次閱讀
沒有評論

共計 6756 個字符,預計需要花費 17 分鐘才能閱讀完成。

這篇文章主要為大家展示了“SQL Monitor Report 怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“SQL Monitor Report 怎么用”這篇文章吧。

SQL Monitor Report

1.SQL Monitor 簡介

在 Oracle Database 11g 中,系統自動監控符合以下條件的 SQL,并收集執行時的細節信息:
1)采用并行方式執行

2)單次執行消耗的 CPU 或 IO 超過 5 秒

3)通過使用 /* +MONITOR*/  HINT 的語句

系統收集的 SQL 信息會存儲在 V$SQL_MONITOR、V$SQL_PLAN_MONITOR 視圖中

2.SQL Monitor 參數設置

STATISTICS_LEVEL 設置為:TYPICAL(缺?。┗蛘?ALL

CONTROL_MANAGEMENT_PACK_ACCESS 設置為:DIAGNOSTIC+TUNING

3.SQL Monitor report 獲取方法

SQL Monitoring 可以采用以下 3 種方式展現:

1)EM:Performance  —— 右下角的 SQL Monitoring —— Monitored SQL Executions

2)SQL Developer:Tools —— Monitor
SQL

3)DBMS_SQLTUNE 包 ——
DBMS_SQLTUNE.report_sql_monitor

其報告格式有:TEXT,HTML,XML,ACTIVE,其中 ACTIVE 只在 11g R2 以后才支持,使用 HTML 和 Flash 的方式顯示動態的報告,需要從 oracle 官網讀取相關聯的 Javascript 和 Flash。

備注:

如果不能連到 Internet 又想看 ACTIVE
Report 可以下載相關的庫文件到本地的 HTTP 服務器上,然后用 BASE_PATH 來制定庫文件的位置。

在本地 HTTP 服務器上創建目錄,然后下載下面的文件:

mkdir -p
/var/www/html/sqlmon

cd
/var/www/html/sqlmon

wget
–mirror –no-host-directories –cut-dirs=1
http://download.oracle.com/otn_software/emviewers/scripts/flashver.js

wget
–mirror –no-host-directories –cut-dirs=1 http://download.oracle.com/otn_software/emviewers/scripts/loadswf.js

wget
–mirror –no-host-directories –cut-dirs=1
http://download.oracle.com/otn_software/emviewers/scripts/document.js

wget
–mirror –no-host-directories –cut-dirs=1 http://download.oracle.com/otn_software/emviewers/sqlmonitor/11/sqlmonitor.swf

在調用函數時加上參數,比如:base_path
= http://ipaddr/sqlmon

4.  SQL Monitor report 生成實例

語法:

DBMS_SQLTUNE.REPORT_SQL_MONITOR()

FUNCTION
REPORT_SQL_MONITOR RETURNS CLOB

 Argument Name   Type  In/Out Default?

 ——————————
———————– —— ——–

 SQL_ID  VARCHAR2  IN  DEFAULT

 SESSION_ID  NUMBER  IN  DEFAULT

 SESSION_SERIAL  NUMBER  IN  DEFAULT

 SQL_EXEC_START  DATE  IN  DEFAULT

 SQL_EXEC_ID  NUMBER  IN  DEFAULT

 INST_ID  NUMBER   IN  DEFAULT

 START_TIME_FILTER  DATE  IN  DEFAULT

 END_TIME_FILTER  DATE  IN  DEFAULT

 INSTANCE_ID_FILTER  NUMBER  IN  DEFAULT

 PARALLEL_FILTER  VARCHAR2  IN  DEFAULT

 PLAN_LINE_FILTER  NUMBER  IN  DEFAULT

 EVENT_DETAIL  VARCHAR2  IN  DEFAULT

 BUCKET_MAX_COUNT  NUMBER  IN  DEFAULT

 BUCKET_INTERVAL  NUMBER  IN  DEFAULT

 BASE_PATH  VARCHAR2  IN  DEFAULT

 LAST_REFRESH_TIME  DATE  IN  DEFAULT

 REPORT_LEVEL   VARCHAR2  IN  DEFAULT

 TYPE  VARCHAR2  IN  DEFAULT

 SQL_PLAN_HASH_VALUE  NUMBER  IN  DEFAULT

4.1Text 文本格式

1)  Sqlplus 參數設置查看

show
parameter statistics_level;

NAME   TYPE  VALUE

————————————
———– ——————————

statistics_level  string  TYPICAL

show
parameter CONTROL_MANAGEMENT_PACK_ACCESS;

NAME   TYPE  VALUE

————————————
———– ——————————

control_management_pack_access  string  DIAGNOSTIC+TUNING

2)  執行模擬 SQL

[oracle@node4 sqlmonitor]$ sqlplus -S
/nolog

conn /as sysdba;

select /* +moniotr*/* from
scott.dept where deptno

    DEPTNO
DNAME  LOC

———- ————–
————-

  10 ACCOUNTING  NEW YORK

  20 RESEARCH  DALLAS

  30 SALES  CHICAGO

3)  從 v$sql_monitor 獲取模擬 SQL 信息

col sql_text for a60;

set line 200;

set pagesize 20000;

select sql_id,sql_text from
v$sql_monitor where sql_text like %scott.dept%

SQL_ID  SQL_TEXT

————-
————————————————————

74qqqwntwzxb1 select /*+ Monitor*/
* from scott.dept where deptno=10

4)  生成 text 類型報告

SET LONG 1000000

SET LONGCHUNKSIZE 1000000

SET LINESIZE 1000

SET PAGESIZE 0

SET TRIM ON

SET TRIMSPOOL ON

SET ECHO OFF

SET FEEDBACK OFF

spool report_sql_monitor_text.txt

SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(

  SQL_ID  =
74qqqwntwzxb1 ,

  TYPE  = TEXT ,

  REPORT_LEVEL = ALL ) AS REPORT

FROM dual;

spool off

5)  展示報告內容

 

4.2HTML 格式

1)生成 HTML 類型報告

SET LONG 1000000

SET LONGCHUNKSIZE 1000000

SET LINESIZE 1000

SET PAGESIZE 0

SET TRIM ON

SET TRIMSPOOL ON

SET ECHO OFF

SET FEEDBACK OFF

spool report_sql_monitor_html.html

SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(

  SQL_ID  =
74qqqwntwzxb1 ,

  TYPE  = HTML ,

  REPORT_LEVEL = ALL ) AS REPORT

FROM dual;

spool off

2)html 類型報告展示

4.3Active 格式

如不能聯網,需要下載相應的 flash 組件、腳本,詳細見 SQL Monitor report 獲取方法

1)active 類型報告生成

SET LONG 1000000

SET LONGCHUNKSIZE 1000000

SET LINESIZE 1000

SET PAGESIZE 0

SET TRIM ON

SET TRIMSPOOL ON

SET ECHO OFF

SET FEEDBACK OFF

spool report_sql_monitor_active.html

SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(

  SQL_ID  = 74qqqwntwzxb1 ,

  TYPE  = ACTIVE ,

  REPORT_LEVEL = ALL ,

  BASE_PATH  =
http://ipaddr/sqlmon ) AS report

FROM dual;

spool off

2)active 類型報告展示

可以通過啟動 http 服務,將文件放置在發布目錄下,通過 http://ipaddr/sqlmon/report_sql_monitor_active.html 形式查看(需下載相應的腳本和組件)

或者拿到 windows 本地查看

5.  SQL Monitor report 其他方法使用

1)DBMS_SQLTUNE.REPORT_SQL_MONITOR_LIST

FUNCTION REPORT_SQL_MONITOR_LIST RETURNS CLOB
 Argument Name  Type  In/Out Default?
 —————————— ———————– —— ——–
 SQL_ID  VARCHAR2  IN  DEFAULT
 SESSION_ID  NUMBER  IN  DEFAULT
 SESSION_SERIAL  NUMBER  IN  DEFAULT
 INST_ID  NUMBER  IN  DEFAULT
 ACTIVE_SINCE_DATE  DATE  IN  DEFAULT
 ACTIVE_SINCE_SEC  NUMBER  IN  DEFAULT
 LAST_REFRESH_TIME  DATE  IN  DEFAULT
 REPORT_LEVEL  VARCHAR2  IN  DEFAULT
 AUTO_REFRESH  NUMBER  IN  DEFAULT
 BASE_PATH  VARCHAR2  IN  DEFAULT
 TYPE  VARCHAR2  IN  DEFAULT

需要 Oracle 11g R2 以上版本。此函數用于產生一個對監控 SQL 的匯總頁,類似于 EM 中的“Monitored SQL Executions”。

常用參數:TYPE 和 REPORT_LEVEL,用法與 REPORT_SQL_MONITOR 類似。

例如:

conn /as sysdba;
SET LONG 1000000
SET LONGCHUNKSIZE 1000000
SET LINESIZE 1000
SET PAGESIZE 0
SET TRIM ON
SET TRIMSPOOL ON
SET ECHO OFF
SET FEEDBACK OFF
SPOOL REPORT_SQL_MONITOR_LIST.HTML
SELECT dbms_sqltune.report_sql_monitor_list(
  type  = HTML ,
  report_level = ALL ) AS report
FROM dual;
SPOOL OFF

2)DBMS_SQLTUNE.REPORT_SQL_DETAIL

FUNCTION REPORT_SQL_DETAIL RETURNS CLOB
 Argument Name  Type  In/Out Default?
 —————————— ———————– —— ——–
 SQL_ID  VARCHAR2  IN  DEFAULT
 SQL_PLAN_HASH_VALUE  NUMBER  IN  DEFAULT
 START_TIME  DATE  IN  DEFAULT
 DURATION  NUMBER  IN  DEFAULT
 INST_ID  NUMBER  IN  DEFAULT
 DBID  NUMBER  IN  DEFAULT
 EVENT_DETAIL  VARCHAR2  IN  DEFAULT
 BUCKET_MAX_COUNT  NUMBER  IN  DEFAULT
 BUCKET_INTERVAL  NUMBER  IN  DEFAULT
 TOP_N  NUMBER  IN  DEFAULT
 REPORT_LEVEL  VARCHAR2  IN  DEFAULT
 TYPE  VARCHAR2  IN  DEFAULT
 DATA_SOURCE  VARCHAR2  IN  DEFAULT
 END_TIME  DATE  IN  DEFAULT
 DURATION_STATS  NUMBER  IN  DEFAULT
需要 Oracle 11g R2 以上版本。此函數用于根據各種條件參數(包括:start_time, end_time, duration, inst_id, dbid, event_detail,
bucket_max_count, bucket_interval, top_n, duration_stats),產生比使用 REPORT_SQL_MONITOR 更加詳細的 SQL 報告。

例如:

conn /as sysdba;
SET LONG 1000000
SET LONGCHUNKSIZE 1000000
SET LINESIZE 1000
SET PAGESIZE 0
SET TRIM ON
SET TRIMSPOOL ON
SET ECHO OFF
SET FEEDBACK OFF
SPOOL REPORT_SQL_DETAIL_HTML.HTML
SELECT dbms_sqltune.REPORT_SQL_DETAIL(SQL_ID  = 74qqqwntwzxb1 ,
  TYPE  = active ,
  report_level = ALL ) AS report
FROM dual;
SPOOL OFF

ERROR:
ORA-13971: Component sql_detail unknown
ORA-06512: at SYS.DBMS_SYS_ERROR , line 95
ORA-06512: at SYS.DBMS_REPORT , line 166
ORA-06512: at SYS.DBMS_REPORT , line 612
ORA-06512: at SYS.DBMS_REPORT , line 1079
ORA-06512: at SYS.DBMS_REPORT , line 1135
ORA-06512: at SYS.DBMS_SQLTUNE , line 20101
ORA-06512: at line 1
(上述錯誤在指定 html 格式,調整為 active 格式即可)

可以針對 topSQL

conn /as sysdba;
SET LONG 1000000
SET LONGCHUNKSIZE 1000000
SET LINESIZE 1000
SET PAGESIZE 0
SET TRIM ON
SET TRIMSPOOL ON
SET ECHO OFF
SET FEEDBACK OFF
SPOOL REPORT_SQL_DETAIL.HTML
SELECT dbms_sqltune.report_sql_detail(top_n  = 5,
  TYPE  = active ,
  report_level = ALL ) AS report
FROM dual;
SPOOL OFF

以上是“SQL Monitor Report 怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-24發表,共計6756字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 鄂州市| 威海市| 丹寨县| 来凤县| 皋兰县| 红河县| 华阴市| 化州市| 乐平市| 华池县| 湖南省| 沿河| 醴陵市| 彰化市| 彭泽县| 凤山县| 光泽县| 毕节市| 秦皇岛市| 高州市| 衡阳市| 中江县| 青河县| 成安县| 武隆县| 塔河县| 闽清县| 濉溪县| 高青县| 静安区| 翼城县| 白沙| 家居| 呈贡县| 汨罗市| 大名县| 新津县| 邢台县| 深圳市| 涞水县| 拉萨市|