posts - 54,  comments - 1,  trackbacks - 0
          對于大數據量修改表格后,可以執(zhí)行以下SQL執(zhí)行表格的優(yōu)化,會對性能有提高。
           
          update statistics for table [tableName]


          補充資料:(原文)

          對進行INFORMIX進行UpdateStatistics 

          摘要:對進行INFORMIX進行UpdateStatistics

            一、Update Statistics的作用
            為了提高數據庫的效率,INFORMIX提供了一個基于成本的查詢優(yōu)化器,執(zhí)行update statistics語句的作用就是將您創(chuàng)建的數據庫表的有關統(tǒng)計信息更新到系統(tǒng)sysmaster的相關表中(如systables、syscolumns、sysindexes、sysdistrib、sysprocplan等),以便查詢優(yōu)化器選擇最佳的執(zhí)行路徑。當sysmaster庫中沒有相應的統(tǒng)計信息,或者統(tǒng)計信息不十分準確時,優(yōu)化器便無法制定一個行之有效的查詢策略,其結果必然是進行大量極其可怕的順序掃描,產生嚴重的性能問題。
            
            因此,當您重新裝載數據或者對數據庫表進行了大量的更新操作后,應該及時執(zhí)行update statistics。也許您會發(fā)現,數據庫一些參數配置的不合理可能使數據庫效率降低百分之幾,但如果您沒有定期執(zhí)行update statistics的話。數據庫的性能則可能降低幾到十幾倍。
            
            二、Update Statistics的語法
            執(zhí)行update statistics共有三個級別,即:update statisticslow、updates tatistics medium、update statistics high。
            1 update statistics[low]for table[{table-name|synonym-name}[(column-list)]]][drop distributions]
            update statistics low只更新表、字段、記錄數、頁數及索引等的最基本信息,對字段的分布情況不做統(tǒng)計。其語法說明如下:
            
            (1)update statistics或update statisticslow,對當前數據庫中所有表(包括系統(tǒng)表)及過程進行更新統(tǒng)計。
            (2)update statistics low for table,對當前數據庫中所有表(包括臨時表,但不包括系統(tǒng)表)進行更新統(tǒng)計。
            (3)update statistics low for table tablename,對指定的表所有字段進行更新統(tǒng)計。
            (4)update statistics low for table tablename(column-list),對指定表的指定字段進行更新統(tǒng)計。
            (5)如果不帶drop distributions,原有字段分布情況依然保留;否則,原有字段分布情況將被刪除。
            2 update statistics medium[for table[{table-name|synonym-name}[(column-list)]]][resolution percent[conf]][distributions only]
            update statistics medium除了更新表、字段、記錄數、頁數及索引等的最基本信息外,對字段的分布情況會采取抽樣的辦法來統(tǒng)計,因此與update statistics low相比需要花費更多的時間。其語法說明如下:
            
            (1)resolution percent是指分布統(tǒng)計的詳細程序,percent定義的是一個百分數,如resolution2意思是指按照字段的值分布統(tǒng)計成50段,如果不指定resolution percent,缺省值為2.5。
            (2)conf是指分布統(tǒng)計時取樣的比例,conf參數的取值范圍為0.80—0.99,缺省值為0.95。
            (3)如果指定了distributions only,則對索引的信息不做更新統(tǒng)計。
            3 update statistics high[for table[{table-name|synonym-name}[(column-list]]][resolutionpercent][distributions only]
            update statistics high與update statistics medium的區(qū)別是在統(tǒng)計字段的分布情況時,后者采用了取樣的辦法,而前者進行全部統(tǒng)計,因此update statistics high更新統(tǒng)計最全面,執(zhí)行時間也最長。其語法說明如下:
            
            (1)如果不指定resolution percent,缺省值為0.5。
            (2)如果指定了distributions only,則對索引的信息不做更新統(tǒng)計。
            4 update statistics for procedure[procedure-name],只對指定的過程進行更新統(tǒng)計,對表不做更新統(tǒng)計
            
            三、如何執(zhí)行Update Statistics
            通常執(zhí)行update statistics的方法是:
            
            1 對表中不帶索引的字段執(zhí)行update statistics medium,每個表執(zhí)行一次。一般情況下,缺省參數就足夠了。對于特別大的表(執(zhí)行update statistics時,通常把超過26570條記錄的表定義為特別大的表),可以帶參數resolution1.00.99。
            2 對表中帶有索引的字段執(zhí)行update statistics high,每個字段執(zhí)行一次。
            3 對表中帶有復合索引的字段執(zhí)行update statistics low,每個表執(zhí)行一次。
            4 對每一個小表執(zhí)行update statistic shigh。
            
            四、注意事項
            1 數據庫本身不會自動更新sysmaster庫中有關statistics統(tǒng)計信息,只有執(zhí)行update statistics語句后,才能得到更新。
            2 執(zhí)行update statistics語句時,必須具有DBA權限或者為表的屬主。
            3 由于update statistics通常為單線程運行,不能利用PDQ等并發(fā)功能,對于一個較大的數據庫,執(zhí)行update statistics語句一般需要幾個小時。為提高效率,可以將update statistics分為多個shell程序同時執(zhí)行,并充分考慮數據空間分布情況,在并發(fā)執(zhí)行時減少磁盤讀寫的沖突。
            4 執(zhí)行update statistics語句會占用一些臨時空間,當臨時空間不夠時,數據庫將提示錯誤。您可以通過設置DBUPSPACE環(huán)境變量,使update statistics在遇到臨時空間不夠時分步來執(zhí)行排序統(tǒng)計。
          posted on 2005-11-21 14:26 ZhuJun 閱讀(914) 評論(0)  編輯  收藏 所屬分類: 開發(fā)手記

          蜀中人氏,躬耕于珠海

          <2005年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          常用鏈接

          留言簿(2)

          隨筆分類(71)

          隨筆檔案(54)

          博客

          文檔

          站點

          論壇

          搜索

          •  

          積分與排名

          • 積分 - 51266
          • 排名 - 974

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 邵武市| 阿尔山市| 镇沅| 封丘县| 横山县| 民县| 望谟县| 辽阳市| 淮北市| 白水县| 怀安县| 景德镇市| 长子县| 南陵县| 开化县| 河津市| 辽源市| 阿拉善盟| 吐鲁番市| 平乡县| 丹巴县| 江永县| 翁牛特旗| 梨树县| 陇西县| 桐柏县| 香河县| 自治县| 连城县| 漠河县| 东兴市| 巴彦淖尔市| 曲麻莱县| 余庆县| 凤台县| 衡山县| 醴陵市| 博客| 北辰区| 临西县| 赞皇县|