Statspack學(xué)習(xí)(一).安裝配置
?
??? Statspack是Oracle提供的一個(gè)非常強(qiáng)大的工具,用于檢測(cè)Oracle系統(tǒng)在某段時(shí)間內(nèi)的執(zhí)行性能,是用來判斷、排查Oracle故障和系統(tǒng)瓶頸的最主要和最常用的手段。從今天開始就來學(xué)習(xí)一下這個(gè)工具的使用方法。
?
一、參數(shù)設(shè)置
?
??? 安裝和運(yùn)行Statspack需要配置以下參數(shù)
?
??? 1、job_queue_processes
?
??? 為了可以建立自動(dòng)任務(wù),執(zhí)行數(shù)據(jù)手機(jī),該參數(shù)需要大于0(默認(rèn)是10)
?
??? 2、timed_statistics
?
??? 收集操作系統(tǒng)的計(jì)時(shí)信息,用以先是時(shí)間等統(tǒng)計(jì)信息,優(yōu)化數(shù)據(jù)庫(kù)和SQL語(yǔ)句。在使用statspack收集統(tǒng)計(jì)信息時(shí)建議將該值設(shè)置為TRUE,否則收集的統(tǒng)計(jì)信息大概只能起到10%的作用。timed_statistics設(shè)置為true會(huì)引起系統(tǒng)的開銷,但是其帶來的影響與好處相比是微不足道的
?
??? 注:該參數(shù)收集的時(shí)間信息存儲(chǔ)在v$sysstat和v$sesstat等動(dòng)態(tài)視圖中。
?
?
二、安裝Statspack
?
??? 以SYSDBA身份登陸,執(zhí)行安裝腳本
?
??? 1、查看基礎(chǔ)信息
?
??? SQL> select instance_name,host_name,version,startup_time from v$instance;
?
??? INSTANCE_NAME??? HOST_NAME? VERSION?????????? STARTUP_TIME
??? ---------------- ---------- ----------------- ------------
??? dodo???????????? WXQ-0099?? 10.2.0.1.0??????? 2009-2-21
?
??? INSTANCE_NAME??? HOST_NAME? VERSION?????????? STARTUP_TIME
??? ---------------- ---------- ----------------- ------------
??? dodo???????????? WXQ-0099?? 10.2.0.1.0??????? 2009-2-21
?
??? 2、查看現(xiàn)有數(shù)據(jù)文件位置
?
??? SQL> select file_name from dba_data_files;
?
??? FILE_NAME
??? ---------------------------------------------------------
??? E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\USERS01.DBF
??? E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\SYSAUX01.DBF
??? E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\UNDOTBS01.DBF
??? E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\SYSTEM01.DBF
?
??? FILE_NAME
??? ---------------------------------------------------------
??? E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\USERS01.DBF
??? E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\SYSAUX01.DBF
??? E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\UNDOTBS01.DBF
??? E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\SYSTEM01.DBF
???
??? 3、創(chuàng)建表空間,用于存放統(tǒng)計(jì)信息
?
??? 注:如果采樣間隔短、周期長(zhǎng)則使用大一點(diǎn)的表空間。例如每半小時(shí)采樣一次,持續(xù)一周,則數(shù)據(jù)量比較大,需要500M左右空間。
??? 注:表空間不能太小,否則創(chuàng)建對(duì)象會(huì)失敗,至少需要100M空間
?
??? SQL> create tablespace perfstat
????? 2? datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\PERFSTAT.DBF'
????? 3? size 500M
????? 4? extent management local;
?
??? Tablespace created
????? 2? datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\DODO\PERFSTAT.DBF'
????? 3? size 500M
????? 4? extent management local;
?
??? Tablespace created
?
??? 4、執(zhí)行spcreate腳本創(chuàng)建Statspack
?
??? SQL> @E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\spcreate.sql
?
??? 開始創(chuàng)建之后需要輸入以下幾個(gè)值:
??? Enter value for perfstat_password:perfstat
??? Enter value for defaulttablespace:perfstat
??? Entwe value for temporary_tablespace:temp
?
??? 最后如果安裝成功會(huì)出現(xiàn)以下信息:
?
??? Started spooling to D:\Program Files\PLSQL Developer\spcpkg.lis
??? Creating Package STATSPACK...
??? Package created
??? No errors for PACKAGE PERFSTAT.STATSPACK
??? Creating Package STATSPACK...
??? Package created
??? No errors for PACKAGE PERFSTAT.STATSPACK
??? Creating Package Body STATSPACK...
??? Package body created
??? No errors for PACKAGE BODY PERFSTAT.STATSPACK
?
??? NOTE:
??? SPCPKG complete. Please check spcpkg.lis for any errors.
??? Stopped spooling to D:\Program Files\PLSQL Developer\spcpkg.lis
?
??? 如果安裝出現(xiàn)問題或者想要?jiǎng)h除statspack,執(zhí)行spdrop.sql腳本刪除創(chuàng)建的所有對(duì)象。
?
??? 注:不要用PLSQL DEV進(jìn)行執(zhí)行腳本,因?yàn)橛行┲噶顭o法編譯通過。
?
?
三、測(cè)試Statspack
?
??? 首先模擬執(zhí)行n次的statspack.snap
?
??? SQL> execute statspack.snap;
??? PL/SQL procedure successfully completed
?
??? SQL> execute statspack.snap;
??? PL/SQL procedure successfully completed
?
??? SQL> execute statspack.snap;
??? PL/SQL procedure successfully completed
?
??? 然后執(zhí)行spreport.sql腳本
?
??? SQL> @E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\spreport.sql;
?
??? Enter value for begin_snap:1
??? Enter value for end_snap:3
??? Enter value for report_name:test
?
??? 注1:snap代碼會(huì)在腳本執(zhí)行的過程中展示出來
??? 注2:會(huì)在當(dāng)前目錄下生成一個(gè)名為test.lst的文件保存信息
?
???
?