定製設計資訊採集方案,可考慮如下實施策略。
(1)根據資料庫規模和資料變化情況,可考慮在資料庫、schema、表、分割槽表等不同級別採集統計資訊
(2)設定並行度,提高統計資訊採集的效率
(3)進行統計資訊採集的目的是保證執行路徑的最優化。因此,不一定需要全面採集統計資訊,只要執行路徑達到最優化,可設定採集率引數estimate_percent
(4)重點對最消耗資源的sql語種所涉及表的進行統計資訊採集
(5)採集表統計資訊時,同時採集索引統計資訊
(6)對分割槽表可考慮只對指定分割槽進行統計資訊採集。包括設定granularity=>'partition'
(7)考慮block_sample=>true,method_opt=>'for all indexed' columns等引數,從而提高取樣準確性,並減少不必要的統計資訊,降低資源消耗
(8)只對沒有統計資訊或過期統計資訊的表進行採集,即options=>'gather empty',或options=>'gather stale'
(9)對於字段值分布很畸形(skewed)的表,進行資料分布統計.
(10)合理使用10g統計資訊採集方面的新特性
(11)編寫統計資訊採集工作的指令碼
統計資訊採集具體方法
oracle提供了豐富的統計資訊採集方法。
(1)資料庫級資訊採集
建議資料庫規模較小、資料變化比較大,而且時間和資源充裕的系統,在整個資料庫級採集統計資訊。例如:
exec
dbms_stats.gather_database_stats(estimate_percent=>10,
degree
=>8,
cascade
=>
true
,granularity =>
'all'
);(2)schema資訊採集
exec
dbms_stats.gather_schema_stats(ownname=>
'clas'
,estimate_percent=>10,
degree
=>8,
cascade
=>
true
,granularity =>
'all'
);(3)表級統計資訊採集
建議對資料量較大、資料變化也比較大的表,在表級進行統計資訊採集。例如:
exec
dbms_stats.gather_table_stats(ownname=>
'clas'
,tabname=>
'表名'
,estimate_percent=>10,
degree
=>8,
cascade
=>
true
,granularity =>
'all'
);(4)分割槽級統計資訊採集
建議對資料量較大、資料變化也比較大的分割槽表,在分割槽級進行統計資訊採集,特別是只採集資料變化較大的分割槽。例如:
exec
dbms_stats.gather_table_stats
(ownname=>'clas'
,tablename=>
'表名'
,partname=
'分割槽名'
,estimate_percent=>10,
degree
=>8,
cascade
=>
true
,granularity =>
'partition'
,method_opt=>
' for all indexed columns');
(5)資料字典統計資訊採集
exec
dbms_stats.gather_dictionary_stats
(estimate_percent=>
100,
degree
=>8,
cascade
=>
true
,granularity =>
'all');
(6)動態效能表統計資訊採集
exec
dbms_stats.gather_fixed_objects_stats;
(7)硬體統計資訊採集
exec
dbms_stats.gather_system_stats(
'start');
在典型業務結束之後,執行如下語句:
exec
dbms_stats.gather_system_stats(
'stop');
注:它也是通過
awr進行採集的。
網頁資訊採集實現
最近公司需要開發乙個簡歷匯入功能,類似部落格搬家或者郵箱搬家,之前抓取資訊是利用火車採集器,但是簡歷匯入功能需要使用者登陸以後才能獲取簡歷資料,無奈只好自己開發了。首先是遇到的問題是 如何實現模擬登陸?我們知道一般的 都是通過cookies來維護狀態的,我抓的 也是支援利用cookies來驗證使用者...
網頁標題資訊採集
之前做了乙個通過ip來掃瞄 的,以為能掃到所有的 因為ip是能全部遍歷的,但是忘記了很多 是禁止反向解析的。所以更改了寫法,仿照類似爬蟲的方法,抓取乙個網頁的內容,然後遍歷其中的 然後根據其中的 再去遍歷內容,如此做了個簡單的網頁標題資訊採集工具.更新,1.使用多執行緒處理 2.使用快取技術減少db...
多執行緒帶智慧型採集策略的採集系統
去年年底的時候曾經發過乙個資料採集器 網頁資料採集器 那是專門針對某乙個 來進行採集的,如果需要採集新的 內容,就需要修改 並重新編譯。昨晚完成了乙個帶智慧型策略的採集系統。其實,這個策略的方案三年前就想好了,那時候打算用vb做,做了一半就擱置了。現在用c 才終於把這個方案實現了。整個方案大概是這樣...