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