跟屌絲大哥學習DB2---DB2 runstats、reorgchk、reorg 命令
1、runstats
runsats可以搜集表的信息,也可以搜集索引信息。作為runstats本身沒有優化的功能,但是它更新了統計信息以后,可以讓DB2優化器使用最新的統計信息來進行優化,這樣優化的效果更好。
runstats
reorg還有一個功能就是可以將表中的數據按照某個索引關鍵字的順序排列,從而可以減少某些查詢I/O的數量。
http://weiruan85.javaeye.com/blog/317520
3、
讓db2系統定時runstats、reorg
Q:定期runstats、reorg
A:在db2 v8.2以上可以使用 CALL SYSPROC.ADMIN_CMD來實現,
這里主要講在v8.2以前的版本中利用shell或者批處理來實現同樣的功能
因為在以前的版本中存儲過程中是不能使用DDL操作語句的!(這點對于oracle剛轉過來的人來說很是郁悶的)
然后可以利用db2自帶的配置自動維護來做,但是java做的東西比較讓人感覺頭痛!尤其是速度和莫名的錯誤!
本代碼使用操作系統的腳本來實現這部分功能!
1.windows下
如下:
下一個cmd文件s.cmd
內容如下:
db2 connect to ccp_dm
db2 -x "select 'runstats on table '||rtrim(tabschema)||'.'||tabname||' on all columns' from sysstat.tables where card=-1">tab.sql
db2 -f tab.sql
--其中where后的條件可以修改
然后就是定制任務:用windos的定制任務!每周或者每月運行,這個就不講了哈!
這部分經測試,通過!
不過能,這里只提到了runstats,對于reorg同理也可以實現!
http://myfriend2010.itpub.net/post/29012/386779
4、reorgchk
C:\Documents and Settings\Administrator>db2 reorgchk update statistics on table all
正在執行 RUNSTATS ....
1) 針對系統表進行REORGCHK
db2 reorgchk update statistics on table system
使用UPDATE STATISTICS參數指定數據庫首先執行RUNSTATS命令。
2) 針對用戶表進行REORGCHK
db2 reorgchk update statistics on table user
下面是執行的部分結果
db2 reorgchk update statistics on table user
執行 RUNSTATS ....
db2 reorgchk 命令是最重要的、也是經常被忽略的 DB2 調整命令之一。 db2 reorgchk 命令被忽略是因為它不是一個一次性調整項。由于更新是在 DB2 數據庫上執行的,因此關于表的統計信息將不會是最新的。db2 reorgchk 命令更新 DB2 優化器所使用的重要統計信息。建議在大約每 10,000 次更新后重復 db2 reorgchk 命令。
在運行 db2 reorgchk 命令之前,您應該停止 IBM Directory Server 以防止在命令執行的同時發生任何 DB2 查詢或更新。雖然這是可選的,但數據庫查詢和更新可能會非常緩慢并有可能超時。
請注意,運行 db2 reorgchk 命令所帶來的性能益處是即時的。不必在 db2 reorgchk 命令之后重新啟動 DB2。
除了提高性能之外,db2 reorgchk 命令還報告關于數據庫中所有表和索引的統計信息。db2 reorgchk 命令還報告關于 DB2 表的組織的統計信息。
http://publib.boulder.ibm.com/tividd/td/ITAME/SC32-1351-00/zh_CN/HTML/am51_perftune66.htm
posted on 2013-01-04 14:46 順其自然EVO 閱讀(446) 評論(0) 編輯 收藏 所屬分類: DB2