国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

對進行INFORMIX進行Update Statistics

2024-07-21 02:35:47
字體:
來源:轉載
供稿:網友

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延安市| 尼勒克县| 南宁市| 岳阳市| 肥西县| 攀枝花市| 遂宁市| 台州市| 邻水| 延安市| 安仁县| 密云县| 巴马| 宜兴市| 彭泽县| 宝山区| 乃东县| 灵宝市| 凤台县| 香河县| 仪陇县| 化德县| 陆河县| 阳高县| 嘉鱼县| 克拉玛依市| 容城县| 屏东县| 海城市| 宁城县| 柳林县| 襄垣县| 华容县| 兴和县| 富顺县| 正镶白旗| 罗江县| 西安市| 凌源市| 马鞍山市| 万州区|