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


          補(bǔ)充資料:(原文)

          對(duì)進(jìn)行INFORMIX進(jìn)行UpdateStatistics 

          摘要:對(duì)進(jìn)行INFORMIX進(jìn)行UpdateStatistics

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

          蜀中人氏,躬耕于珠海

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

          常用鏈接

          留言簿(2)

          隨筆分類(lèi)(71)

          隨筆檔案(54)

          博客

          文檔

          站點(diǎn)

          論壇

          搜索

          •  

          積分與排名

          • 積分 - 51266
          • 排名 - 974

          最新評(píng)論

          閱讀排行榜

          主站蜘蛛池模板: 丹江口市| 仁布县| 仁寿县| 呼图壁县| 响水县| 宁蒗| 肥城市| 手游| 延津县| 马鞍山市| 海口市| 拉孜县| 巩留县| 枣庄市| 高青县| 绥棱县| 滦南县| 彰化市| 大荔县| 封开县| 安阳县| 新沂市| 大洼县| 青海省| 阿合奇县| 雷波县| 哈尔滨市| 米脂县| 宁都县| 通海县| 太和县| 遵义市| 晋城| 秦安县| 寻乌县| 南华县| 和田市| 峨边| 肥乡县| 房产| 翁牛特旗|