1、telnet到遠端的資料庫伺服器
cmd>telnet 遠端資料庫的ip
2、切換到資料庫的使用者
dqxxdbs01:/> su - oracle
3、用超級使用者進入資料庫
$ sqlplus "/as sysdba"
4、檢視引數,是否可以用job(可以用job進行自動的收集statpack report的資料)
sql> show parameter job_queue_pro程式設計客棧cesses
5、該引數可以收集作業系統的資訊
sql> show parameter timed_statistics
6、為了建立表空間,表空間的資料檔案放在哪比較好
複製** **如下:
sql> select file_name from dba_data_files;
7、檢視哪個目錄的空間比較大,確定perfstat表空間的資料檔案的位置
$ df -g
8、建立表空間:
複製** **如下:
sql> create tablespace perfstat datafile '/oracle/product/10.2.0/db_1/dbs/perfstat.dbf'size 500m;
--表空間用於儲存快照時蒐集的資料
9、建立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、測試是否成功,生成資料庫的乙個快照
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的快照,便於收集資料(預設為1小時產生乙個快照)
sql> @/oracle/product/10.2.0/db_1/rdbms/admin/spauto.sql
14、刪除歷史資料
select max(snap_i from stats$snapshot;--刪除stats$snapshot表中的相應資料,其他表中的相應資料也會級連刪除
delete from stats$snapshot where snap_id<3;
也可以通過執行sptrunc.sql該指令碼直接刪除這些統計表的資訊
注意事項:
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這個指令碼刪除建立的物件,然後再執行spcreate.sql
4、執行spcreate.sql這個指令碼後,可以查詢相關的lis檔案檢視安裝資訊(在sqlplus預設路徑下)
其他相關的一些指令碼
1、spuexp.par指令碼 --可用於匯出statpack報告相關的資料的dmp,如下所示
exp userid=perfstat/fyzh parfile=spuexp.par
注意:spuexp.par檔案必須在sqlplus登陸的當前路徑。如登陸的sqlplus路徑是c:\documents and settings\administrator,
那麼spuexp.www.cppcns.compar就要在該目錄下,否則提示「lrm-00109: 程式設計客棧無法開啟引數檔案 'spuexp.par'」
2、sprepsql.sql指令碼 --用於根據給定的sql hash值生成sql報告
調整statspack的收集門限
statspack有兩種型別的收集選項:
級別(level):控制收集資料的型別
門限(threshold):設定收集的資料的閾值.
1、級別(level)
statspack共有三種快照級別,預設值是5
a.level 0: 一般效能統計.包括等待事件、系統事件、系統統計、回滾段統計、行快取、sga、會話、鎖、緩衝池統計等等.
b.level 5: 增加sql語句.除了包括level0的所有內容,還包括sql語句的收集,收集結果記錄在stats$sql_summary中.
c.level 1 增加子鎖存統計.包括level5的所有內容.並且還會將附加的子鎖存存入stats$lathc_children中.在使用這個級別時需要慎重,建議在oracle support的指導下進行.
可以通過statspack包修改預設的級別設定
sql> execute statspack.snap(i_snap_level=>0,i_modify_parameter=>'true');
如果你只是想本次改變收集級別,可以忽略i_modify_parameter引數.
sql> execute statspack.snap(i_snap_level=>0);
2、快照門限
快照門限只應用於stats$sql_summary表中獲取的sql語句.
因為每乙個快照都會收集很多資料,每一行都代表獲取快照時資料庫中的乙個sql語句,所以stats$sql_summary很快就會成為statspack中最大的表.
門限儲存在stats$statspack_parameter表中:
executions_th這是sql語句執行的數量(預設值是100)
disk_reads_tn這是sql語句執行的磁碟讀入數量(預設值是1000)
parse_calls_th這是sql語句執行的解析呼叫的數量(預設值是1000)
buffer_gets_th這是sql語句執行的緩衝區獲取的數量(預設值是10000)
任何乙個門限值超過以上引數就會產生一條記錄.
通過呼叫statspack.modify_statspack_parameter函式改變門限的預設值:
複製** **如下:
sql>execute statspack.modify_statspack_parameter(i_buffer_gets_th=>100000,i_disk_reads_th=>100000);
本文標題: 分析oracle生成statpack步驟
本文位址:
oracle 生成隨機姓名 Oracle生成隨機碼
本人 交友樂www.jyoule.com 需要經常生成隨機的活動碼,用於製作卡片密碼或通過網路傳送。活動碼的生成規則是採用唯一的字串開頭後面是隨機數字,比如az00001。使用程式生成活動碼速度較慢,但是使用oracle產生活動碼速度極快,而且使用方便。1萬個活動碼只需要2 3秒就可以產生。下面是 ...
Oracle 資料生成 索引
1.建表 create table qq qq num integer 2.插入資料 插入資料的方法有很多種,但是要插入3億資料,必須要有高效的演算法。在插入資料時我用了最笨的辦法,採用pl sql利用流程控制的loop語句插入。同時我也看了網上的插入效率的優化,怎樣利用較少的時間生成較多的測試資料...
Oracle生成隨機函式
1.基礎認識 關於這些函式及dbms random包的檔案都包含在sqlplus中 select text from all source where name dbms random and type package order by line type num array procedure t...