Oracle SQL 調優健全狀態檢查指令碼

來源:互聯網
上載者:User

標籤:

Oracle SQL 調優健全狀態檢查指令碼

 我們關注資料庫系統的效能,進行資料庫調優的主要工作就是進行SQL的最佳化。良好的資料架構設計、配合應用系統中介軟體和寫一手漂亮的SQL,是未來系統上線後不出現致命效能問題的有力保證。

  在CBO時代,一個SQL的執行計畫是多樣的。影響執行計畫的因素也從過去RBO時代的SQL書寫規則變為綜合性因素。這為我們產生更加優秀執行計畫提供了基礎,同時也給我們進行調優帶來的很多麻煩。

  目前我們通常的做法,是通過AWR報告或者調試手段,發現某某SQL有問題,之後從Library Cache(或者AWR)中抽取出執行計畫。同時相對應的各種統計資訊也需要手工收集。

  在MOS[ID 1366133.1]中,發現一個Oracle非公開使用的指令碼,可以協助我們一次性的將執行SQL相關的健康資訊全部收集,並且輸出為HTML格式檔案。本篇就介紹這個指令碼工具,也當作是一種推廣。

  1、環境準備

  我們選擇Oracle 10g作為實驗環境。

 

SQL> select * from v$version;

 

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE   10.2.0.1.0 Production

TNS for 32-bit Windows: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0–Production

 

 

構造一個實驗SQL,用來進行示範。

 

 

SQL> select /*+ demo */ emp.empno, emp.ename, dept.dname

 2 from emp, dept

 3 where emp.deptno=dept.deptno;

 

EMPNO ENAME     DNAME

----- ---------- --------------

 7369 SMITH     RESEARCH

7934 MILLER    ACCOUNTING

(篇幅原因,結果集合省略……)

 

--此時,該SQL已經存在於Library Cache中;

SQL> select sql_id from v$sqlarea where sql_text like ‘select /*+ demo */%‘;

 

SQL_ID

-------------

auurp0v54vjgc

 

2、呼叫指令碼

我們從網站上可以下載到產生指令碼sqlhc.sql(SQL Tuning Health-Check Script. [ID 1366133.1])。之後在sqlplus裡調用。 

D:\test>sqlplus /nolog

 

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 12月 28 22:10:18 2011

 

Copyright (c) 1982, 2005, Oracle. All rights reserved.

 

SQL> conn sys/[email protected] as sysdba

已串連。

SQL> @sqlhc.sql

 

--許可證擁有標識;

Parameter 1:

Oracle Pack license (Tuning or Diagnostics) [Y|N] (required)

 

輸入1 的值: N

 

PL/SQL 過程已成功完成。

 

--進行檢查的SQL_ID編號;

Parameter 2:

SQL_ID of the SQL to be analyzed (required)

 

輸入2 的值: auurp0v54vjgc

 

 

之後就是產生html格式報告的過程,最後會以組建檔案名稱的方式通知。

 

 

SQLTH file has been created:

sqlhc_orcl_ibmvs2a1bhcns0_10.2.0.1.0_auurp0v54vjgc_20111228221121.html.

Review this file and act upon its content.

 

SQL>

 

 

這樣在指定目錄下,我們就可以找到產生的html格式報告檔案。

 

 

 

D:\test>dir

 磁碟機 D 中的卷沒有標籤。

 卷的序號是 CA23-1191

 

 D:\test 的目錄

 

2011-12-28 22:11   <DIR>         .

2011-12-28 22:11   <DIR>         ..

2011-12-28 22:11          101,335 sqlhc.log

2011-12-28 21:49          109,841 sqlhc.sql

2011-12-28 22:11           10,140 sqlhc_orcl_ibmvs2a1bhcns0_10.2.0.1.0_auurp0v

54vjgc_20111228221121.html

              3 個檔案       221,316 位元組

2 個目錄 2,439,000,064 可用位元組

 

 

3、結果報告分析

 

在報告中,主要分為三個部分。

 

首先,後台環境參數設定。其中包括該SQL設計使用的最佳化器和相關的資料表統計量選取基準。

 

 

 

其次就是相關設計資料表、索引的統計量資訊。

 

 

 

最後是使用的執行計畫資訊。

 

 

 

4.結論

 

    使用SQL Tuning Heath-Check指令碼,可以協助我們方便的將相關SQL的執行計畫和統計資訊一併抽出。作為我們進行效能調試的依據。

 

    但是,筆者強調的是,作為調優人員,對基礎知識、原理的理解是非常重要的。工具、指令碼只是協助我們日常效率提升的一個手段而已。

http://dev.yesky.com/183/30968683.shtml

Oracle SQL 調優健全狀態檢查指令碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.