• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            db2系統定時runstats、reorg方法代碼

            Posted on 2008-08-14 19:18 Prayer 閱讀(1473) 評論(0)  編輯 收藏 引用 所屬分類: 數據庫,SQL
            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同理也可以實現!

            2.非windows下(這個是從網上搞得,沒有測試過):
            #!/usr/bin/ksh 
            #DB2V8統計更新腳本 by Ray001 2006/09/06 
            if [ $# -ne 3 ] 
            then 
            echo "Usage:$0 DBNAME USER PASSWD!" 
            exit 1 
            fi 
            DBNAME=$1 
            USER=$2 
            PASSWD=$3 
            rm -f tab.tmp 
            rm -f ind.tmp 
            db2 connect to $DBNAME user $USER using $PASSWD 
            db2 -x "select tabschema,tabname from sysstat.tables where card=-1">tab.tmp 
            if [ $? -ne 0 ] 
            then 
            if [ ! -s tab.tmp ] 
            then 
            echo "NO TABLES NEED TO BE PROCESS" 
            #exit 0 
            else 
            echo "SELECT SYSSTAT.TABLES ERROR" 
            exit 1 
            fi 
            fi 
            db2 -x "select tabschema,tabname,indschema,indname from sysstat.indexes where nl 
            eaf=-1">ind.tmp 
            if [ $? -ne 0 ] 
            then 
            if [ ! -s ind.tmp ] 
            then 
            echo "NO INDEXES NEED TO BE PROCESS" 
            #exit 0 
            else 
            echo "SELECT SYSSTAT.INDEXES ERROR" 
            exit 1 
            fi 
            fi 
            while read TABSCHEMA TABNAME 
            do 
            echo "runstats on table $TABSCHEMA.$TABNAME" 
            db2 "runstats on table $TABSCHEMA.$TABNAME" 
            donewhile read TABSCHEMA TABNAME INDSCHEMA INDNAME 
            do 
            echo "runstats on table $TABSCHEMA.$TABNAME for index $INDSCHEMA.$INDNAME" 
            db2 "runstats on table $TABSCHEMA.$TABNAME for index $INDSCHEMA.$INDNAME" 
            donedb2 terminate 
            rm -f tab.tmp 
            rm -f ind.tmp 
            久久99精品国产99久久6男男| 国産精品久久久久久久| 日本人妻丰满熟妇久久久久久| 亚洲AV乱码久久精品蜜桃| 国产精品无码久久久久久| 人妻中文久久久久| 国产精品无码久久久久久| 欧美久久综合九色综合| 97久久国产亚洲精品超碰热| 丁香五月综合久久激情| 久久婷婷激情综合色综合俺也去| a级毛片无码兔费真人久久| 无码国产69精品久久久久网站| 久久久91人妻无码精品蜜桃HD| 久久久久久久波多野结衣高潮| 久久精品国产精品亚洲艾草网美妙| 亚洲人成精品久久久久| 免费精品久久久久久中文字幕| 久久久久久久99精品免费观看| 久久夜色精品国产网站| 伊人伊成久久人综合网777| 欧美综合天天夜夜久久| 97久久超碰国产精品2021| 无码日韩人妻精品久久蜜桃| 久久婷婷五月综合色奶水99啪| 欧美亚洲日本久久精品| 久久www免费人成看国产片| 91久久精品无码一区二区毛片| 久久亚洲AV成人无码电影| 久久久久精品国产亚洲AV无码| 久久久久无码国产精品不卡| 久久成人永久免费播放| 国产巨作麻豆欧美亚洲综合久久 | 久久综合给合久久国产免费 | 久久天天躁狠狠躁夜夜2020一| 久久精品国产色蜜蜜麻豆| 久久精品国产亚洲7777| 香蕉久久永久视频| 伊人久久大香线焦AV综合影院| 久久精品国产亚洲av麻豆蜜芽| 欧美黑人激情性久久|