分析Oracle生成Statpack步驟
更新時間:2012年11月23日 09:48:56 作者:
本文將介紹ORACLE配置STATSPACK步驟,需要了解更多的朋友可以參考下
1、telnet到遠程的數(shù)據(jù)庫服務器
CMD>telnet 遠程數(shù)據(jù)庫的IP
2、切換到數(shù)據(jù)庫的用戶
DQXXDBS01:/> su - oracle
3、用超級用戶進入數(shù)據(jù)庫
$ sqlplus "/as sysdba"
4、查看參數(shù),是否可以用job(可以用job進行自動的收集Statpack Report的數(shù)據(jù))
SQL> show parameter job_queue_processes
5、該參數(shù)可以收集操作系統(tǒng)的信息
SQL> show parameter timed_statistics
6、為了創(chuàng)建表空間,表空間的數(shù)據(jù)文件放在哪比較好
SQL> select file_name from dba_data_files;
7、查看哪個目錄的空間比較大,確定perfstat表空間的數(shù)據(jù)文件的位置
$ df -g
8、創(chuàng)建表空間:
SQL> create tablespace perfstat datafile '/oracle/product/10.2.0/db_1/dbs/perfstat.dbf'size 500M;
--表空間用于存儲快照時搜集的數(shù)據(jù)
9、創(chuàng)建Statspack需要的腳本
SQL> @:/oracle/product/10.2.0/db_1/rdbms/admin/spcreate.sql --"/oracle/product/10.2.0/db_1/rdbms/admin/"為腳本目錄
運行該腳本后,輸入perfstat_password、default_tablespace、temporary_tablespace
10、測試是否成功,生成數(shù)據(jù)庫的一個快照
SQL> execute statspack.snap
11、再生成一個快照
SQL> execute statspack.snap
12、取兩個快照之間時間段的Statspack報告
SQL> @/oracle/product/10.2.0/db_1/rdbms/admin/spreport.sql
輸入生成Statspack報告的起始點和終止點,如上生成了兩個時間點的快照,輸入begin_snap:1和end_snap:2,然后輸入生成快照的名稱(如1.txt)
--備注:如果沒有指定報告放置的位置,則該報告在啟動sqlplus時所在的路徑
13、用job進行定時產生Statspack的快照,便于收集數(shù)據(jù)(默認為1小時產生一個快照)
SQL> @/oracle/product/10.2.0/db_1/rdbms/admin/spauto.sql
14、刪除歷史數(shù)據(jù)
select max(snap_id) from stats$snapshot;--刪除stats$snapshot表中的相應數(shù)據(jù),其他表中的相應數(shù)據(jù)也會級連刪除
delete from stats$snapshot where snap_id<3;
也可以通過執(zhí)行sptrunc.sql該腳本直接刪除這些統(tǒng)計表的信息
注意事項:
1、生成需要的Statspack之后,記住移除任務,查看任務:
SQL> select job, log_user, priv_user, last_date,next_date, interval from user_jobs;
2、移除生成Statspack快照的任務:
SQL> execute dbms_job.remove('41')
3、如果在運行spcreate.sql這個腳本出錯的話,可以通過運行spdrop.sql這個腳本刪除創(chuàng)建的對象,然后再執(zhí)行spcreate.sql
4、運行spcreate.sql這個腳本后,可以查找相關的lis文件查看安裝信息(在sqlplus默認路徑下)
其他相關的一些腳本
1、spuexp.par腳本 --可用于導出statpack報告相關的數(shù)據(jù)的dmp,如下所示
exp userid=perfstat/fyzh parfile=spuexp.par
注意:spuexp.par文件必須在sqlplus登陸的當前路徑。如登陸的sqlplus路徑是C:\Documents and Settings\Administrator,
那么spuexp.par就要在該目錄下,否則提示“LRM-00109: 無法打開參數(shù)文件 'spuexp.par'”
2、sprepsql.sql腳本 --用于根據(jù)給定的sql hash值生成sql報告
調整STATSPACK的收集門限
Statspack有兩種類型的收集選項:
級別(level):控制收集數(shù)據(jù)的類型
門限(threshold):設置收集的數(shù)據(jù)的閾值.
1、級別(level)
Statspack共有三種快照級別,默認值是5
a.level 0: 一般性能統(tǒng)計.包括等待事件、系統(tǒng)事件、系統(tǒng)統(tǒng)計、回滾段統(tǒng)計、行緩存、SGA、會話、鎖、緩沖池統(tǒng)計等等.
b.level 5: 增加SQL語句.除了包括level0的所有內容,還包括SQL語句的收集,收集結果記錄在stats$sql_summary中.
c.level 10: 增加子鎖存統(tǒng)計.包括level5的所有內容.并且還會將附加的子鎖存存入stats$lathc_children中.在使用這個級別時需要慎重,建議在Oracle support的指導下進行.
可以通過statspack包修改缺省的級別設置
SQL> execute statspack.snap(i_snap_level=>0,i_modify_parameter=>'true');
如果你只是想本次改變收集級別,可以忽略i_modify_parameter參數(shù).
SQL> execute statspack.snap(i_snap_level=>0);
2、快照門限
快照門限只應用于stats$sql_summary表中獲取的SQL語句.
因為每一個快照都會收集很多數(shù)據(jù),每一行都代表獲取快照時數(shù)據(jù)庫中的一個SQL語句,所以stats$sql_summary很快就會成為Statspack中最大的表.
門限存儲在stats$statspack_parameter表中:
executions_th這是SQL語句執(zhí)行的數(shù)量(默認值是100)
disk_reads_tn這是SQL語句執(zhí)行的磁盤讀入數(shù)量(默認值是1000)
parse_calls_th這是SQL語句執(zhí)行的解析調用的數(shù)量(默認值是1000)
buffer_gets_th這是SQL語句執(zhí)行的緩沖區(qū)獲取的數(shù)量(默認值是10000)
任何一個門限值超過以上參數(shù)就會產生一條記錄.
通過調用statspack.modify_statspack_parameter函數(shù)改變門限的默認值:
SQL>execute statspack.modify_statspack_parameter(i_buffer_gets_th=>100000,i_disk_reads_th=>100000);
CMD>telnet 遠程數(shù)據(jù)庫的IP
2、切換到數(shù)據(jù)庫的用戶
DQXXDBS01:/> su - oracle
3、用超級用戶進入數(shù)據(jù)庫
$ sqlplus "/as sysdba"
4、查看參數(shù),是否可以用job(可以用job進行自動的收集Statpack Report的數(shù)據(jù))
SQL> show parameter job_queue_processes
5、該參數(shù)可以收集操作系統(tǒng)的信息
SQL> show parameter timed_statistics
6、為了創(chuàng)建表空間,表空間的數(shù)據(jù)文件放在哪比較好
復制代碼 代碼如下:
SQL> select file_name from dba_data_files;
7、查看哪個目錄的空間比較大,確定perfstat表空間的數(shù)據(jù)文件的位置
$ df -g
8、創(chuàng)建表空間:
復制代碼 代碼如下:
SQL> create tablespace perfstat datafile '/oracle/product/10.2.0/db_1/dbs/perfstat.dbf'size 500M;
--表空間用于存儲快照時搜集的數(shù)據(jù)
9、創(chuàng)建Statspack需要的腳本
SQL> @:/oracle/product/10.2.0/db_1/rdbms/admin/spcreate.sql --"/oracle/product/10.2.0/db_1/rdbms/admin/"為腳本目錄
運行該腳本后,輸入perfstat_password、default_tablespace、temporary_tablespace
10、測試是否成功,生成數(shù)據(jù)庫的一個快照
SQL> execute statspack.snap
11、再生成一個快照
SQL> execute statspack.snap
12、取兩個快照之間時間段的Statspack報告
SQL> @/oracle/product/10.2.0/db_1/rdbms/admin/spreport.sql
輸入生成Statspack報告的起始點和終止點,如上生成了兩個時間點的快照,輸入begin_snap:1和end_snap:2,然后輸入生成快照的名稱(如1.txt)
--備注:如果沒有指定報告放置的位置,則該報告在啟動sqlplus時所在的路徑
13、用job進行定時產生Statspack的快照,便于收集數(shù)據(jù)(默認為1小時產生一個快照)
SQL> @/oracle/product/10.2.0/db_1/rdbms/admin/spauto.sql
14、刪除歷史數(shù)據(jù)
select max(snap_id) from stats$snapshot;--刪除stats$snapshot表中的相應數(shù)據(jù),其他表中的相應數(shù)據(jù)也會級連刪除
delete from stats$snapshot where snap_id<3;
也可以通過執(zhí)行sptrunc.sql該腳本直接刪除這些統(tǒng)計表的信息
注意事項:
1、生成需要的Statspack之后,記住移除任務,查看任務:
SQL> select job, log_user, priv_user, last_date,next_date, interval from user_jobs;
2、移除生成Statspack快照的任務:
SQL> execute dbms_job.remove('41')
3、如果在運行spcreate.sql這個腳本出錯的話,可以通過運行spdrop.sql這個腳本刪除創(chuàng)建的對象,然后再執(zhí)行spcreate.sql
4、運行spcreate.sql這個腳本后,可以查找相關的lis文件查看安裝信息(在sqlplus默認路徑下)
其他相關的一些腳本
1、spuexp.par腳本 --可用于導出statpack報告相關的數(shù)據(jù)的dmp,如下所示
exp userid=perfstat/fyzh parfile=spuexp.par
注意:spuexp.par文件必須在sqlplus登陸的當前路徑。如登陸的sqlplus路徑是C:\Documents and Settings\Administrator,
那么spuexp.par就要在該目錄下,否則提示“LRM-00109: 無法打開參數(shù)文件 'spuexp.par'”
2、sprepsql.sql腳本 --用于根據(jù)給定的sql hash值生成sql報告
調整STATSPACK的收集門限
Statspack有兩種類型的收集選項:
級別(level):控制收集數(shù)據(jù)的類型
門限(threshold):設置收集的數(shù)據(jù)的閾值.
1、級別(level)
Statspack共有三種快照級別,默認值是5
a.level 0: 一般性能統(tǒng)計.包括等待事件、系統(tǒng)事件、系統(tǒng)統(tǒng)計、回滾段統(tǒng)計、行緩存、SGA、會話、鎖、緩沖池統(tǒng)計等等.
b.level 5: 增加SQL語句.除了包括level0的所有內容,還包括SQL語句的收集,收集結果記錄在stats$sql_summary中.
c.level 10: 增加子鎖存統(tǒng)計.包括level5的所有內容.并且還會將附加的子鎖存存入stats$lathc_children中.在使用這個級別時需要慎重,建議在Oracle support的指導下進行.
可以通過statspack包修改缺省的級別設置
SQL> execute statspack.snap(i_snap_level=>0,i_modify_parameter=>'true');
如果你只是想本次改變收集級別,可以忽略i_modify_parameter參數(shù).
SQL> execute statspack.snap(i_snap_level=>0);
2、快照門限
快照門限只應用于stats$sql_summary表中獲取的SQL語句.
因為每一個快照都會收集很多數(shù)據(jù),每一行都代表獲取快照時數(shù)據(jù)庫中的一個SQL語句,所以stats$sql_summary很快就會成為Statspack中最大的表.
門限存儲在stats$statspack_parameter表中:
executions_th這是SQL語句執(zhí)行的數(shù)量(默認值是100)
disk_reads_tn這是SQL語句執(zhí)行的磁盤讀入數(shù)量(默認值是1000)
parse_calls_th這是SQL語句執(zhí)行的解析調用的數(shù)量(默認值是1000)
buffer_gets_th這是SQL語句執(zhí)行的緩沖區(qū)獲取的數(shù)量(默認值是10000)
任何一個門限值超過以上參數(shù)就會產生一條記錄.
通過調用statspack.modify_statspack_parameter函數(shù)改變門限的默認值:
復制代碼 代碼如下:
SQL>execute statspack.modify_statspack_parameter(i_buffer_gets_th=>100000,i_disk_reads_th=>100000);
相關文章
Oracle解鎖表、包、用戶、殺會話、停job的方法實現(xiàn)
本文主要介紹了Oracle解鎖表、包、用戶、殺會話、停job的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-12-12Oracle 通過impdp導入報ORA-39002 ORA-39165錯誤的解決方案
這篇文章主要介紹了Oracle 通過impdp導入報ORA-39002 ORA-39165錯誤,本文給大家分享原因分析及解決方案,需要的朋友可以參考下2023-09-09如何將Oracle的一個大數(shù)據(jù)表快速遷移到 Sqlserver2008數(shù)據(jù)庫(圖文教程)
這篇文章主要介紹了如何將Oracle的一個大數(shù)據(jù)表快速遷移到 Sqlserver2008數(shù)據(jù)庫(圖文教程),本文圖文并茂給大家介紹的非常詳細,需要的的朋友參考下吧2017-05-05Oracle數(shù)據(jù)庫恢復教程之resetlogs操作
這篇文章主要給大家介紹了關于Oracle數(shù)據(jù)庫恢復教程之resetlogs操作的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Oracle數(shù)據(jù)庫具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-05-05Oracle導出文本文件的三種方法(spool,UTL_FILE,sqluldr2)
這篇文章主要介紹了Oracle導出文本文件的三種方法(spool,UTL_FILE,sqluldr2),需要的朋友可以參考下2023-05-05ORACLE正則匹配查詢LIKE查詢多個值檢索數(shù)據(jù)庫對象
這篇文章主要介紹了ORACLE正則匹配查詢,LIKE查詢多個值檢索數(shù)據(jù)庫對象,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07Oracle如何批量將表中字段名全轉換為大寫(利用簡單存儲過程)
這篇文章主要給大家介紹了關于Oracle如何批量將表中字段名全轉換為大寫的相關資料,主要利用的就是一個簡單的存儲過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11