qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          跟屌絲大哥學習DB2---DB2 runstats、reorgchk、reorg 命令

          1、runstats

          runsats可以搜集表的信息,也可以搜集索引信息。作為runstats本身沒有優化的功能,但是它更新了統計信息以后,可以讓DB2優化器使用最新的統計信息來進行優化,這樣優化的效果更好。

           

          runstats   on   table   <tbschema>.<tbname>   收集表   <tbname>   的統計信息。表名必須是用   <dbschema>   全限定的。

           

           

            2、reorg

           

           A、 reorg   table   <tbschema>.<tablename>   通過重構行來消除“碎片”數據并壓縮信息,對表進行重組。表名必須是用   <dbschema>   全限定的。

            B、

          reorg還有一個功能就是可以將表中的數據按照某個索引關鍵字的順序排列,從而可以減少某些查詢I/O的數量。

           

           

            執行REORG可以考慮分為表上有索引和沒有索引兩種情況: 

               a.如表名為DB2INST1.STAFF,索引名為DB2INST1.ISTAFF

                reorg table db2inst1.staff index db2inst1.istaff use tempspace1

              b.建議REORG時使用USE參數指定數據重排時使用的臨時表空間,否則,REORG工作將會

                 在表所在表空間中原地執行.如果表上有多個索引,INDEX參數值請使用最為重要的索

                 引名.

              c.表上沒有索引:

                 reorg table db2inst1.staff use tempspace1

                reorg table sysibm.systables use tempspace1

           

          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 ....

           

            reorgchk   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

          <2013年1月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 深圳市| 双峰县| 蒲城县| 淅川县| 宁阳县| 成都市| 错那县| 密云县| 黄石市| 汕头市| 宜良县| 墨竹工卡县| 长岭县| 兰西县| 天门市| 通许县| 文安县| 紫阳县| 东方市| 龙游县| 灵寿县| 乌鲁木齐市| 安塞县| 广昌县| 志丹县| 涟水县| 昭觉县| 梨树县| 仁怀市| 辉南县| 青阳县| 合水县| 阿拉善左旗| 巴中市| 南投县| 泽库县| 法库县| 无极县| 赞皇县| 庆阳市| 洛浦县|