DB2 抽樣統計案例

fjzcau發表於2015-03-28
我們的資料庫中有一張表資料量超過30億(當時是v9.1版本),有一天我們需要對該表建一個索引,
建完之後需要做runstats,一開始並沒有考慮太多,結果跑了20多分鐘,runstats命令報錯了,說臨時表空間滿了,
一檢查發現我們資料庫的臨時表空間只有280G,全表runstats根本沒法做。當時很苦惱,自己想了很長時間也沒轍,
後來就請教了DB2培訓及技術交流群中的大拿“大風”老師,他給我一個方法,
採用樣本收集,即快捷且統計資訊準確率又高。他給了兩種樣本統計方式:

runstats on table myschema.customer with distribution on all columns
and   detailed indexes all tablesample system (10);   ----- 10 percent of the pages

runstats on table myschema.customer on all columns
and sample detailed indexes  all tablesample bernoulli (15);   ------ 15 percent of all rows

兩種 sampling 的區別在於
For BERNOULLI, all data pages will be retrieved through a table scan
but only the percentage of rows as specified through the numeric-literal parameter will be used for the statistics collection.

For SYSTEM, only a percentage of the data pages as specified through the numeric-literal parameter will be retrieved
and used for the statistics collection.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22661144/viewspace-1477205/,如需轉載,請註明出處,否則將追究法律責任。

相關文章