日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Update Statistics 的級別...

 昵稱90415 2009-02-24
Update Statistics 的級別
 
作者:  出處:Unix愛好者家園unix-cd.com  更新時間: 2006年03月12日 
給定查詢的不同執(zhí)行策略可能會有不同的代價,構(gòu)造具有最小查詢執(zhí)行代價的查詢執(zhí)行計劃是數(shù)據(jù)庫系統(tǒng)的職責(zé)。查詢優(yōu)化是為了查詢選擇最有效的查詢策略的過程。查詢優(yōu)化是盡量找出與給定表達(dá)式等價的、但是執(zhí)行效率更高的一個表達(dá)式,而且決定執(zhí)行運算時所采用的具體算法以及將使用的特定索引等。 

為了在諸多查詢策略中作出選擇,數(shù)據(jù)庫系統(tǒng)的優(yōu)化器必須估計每個查詢策略的代價,磁盤訪問次數(shù)常常是衡量代價的主要標(biāo)準(zhǔn)。在沒有按照某策略執(zhí)行查詢前,準(zhǔn)確計算出該策略的代價是不可能的,所以,優(yōu)化器要利用數(shù)據(jù)庫系統(tǒng)中的統(tǒng)計信息,來估計查詢策略的代價。Informix數(shù)據(jù)庫系統(tǒng)這些統(tǒng)計信息保存在SYSMASTER數(shù)據(jù)庫中, 
如果要維護準(zhǔn)確的統(tǒng)計值,那么每當(dāng)表數(shù)據(jù)修改時,相應(yīng)的統(tǒng)計值也必須更新,這種更新會帶來很大的代價,因此Informix系統(tǒng)不是在每次修改時對統(tǒng)計值更新。因此,用于選擇查詢策略的統(tǒng)計數(shù)據(jù)不一定完全正確,有時會遇到查詢用不到應(yīng)該使用的索引,就是統(tǒng)計信息沒有更新的原因。 對Informix數(shù)據(jù)庫系統(tǒng),這些統(tǒng)計信息保存在SYSMASTER數(shù)據(jù)庫中,可以使用UPDATE STATISTICS命令更新。 
以下是用于估計代價的信息: 
記錄數(shù) 
表空間的頁數(shù) 
記錄長度 
字段不同值個數(shù) 
字段值的分布 
索引的層數(shù) 
索引葉結(jié)點數(shù)目 
索引B+樹的深度 
索引是升序還是降序或聚類索引 
索引占用的頁面數(shù)目 
Informix 數(shù)據(jù)庫服務(wù)器中的優(yōu)化器為SQL語句的查詢提供最有效的策略,這就使得你在進(jìn)行表的連接查詢時不必全面考慮究竟那個表首先搜索,以及究竟需要使用那個索引。 
通過執(zhí)行update statistics命令可以更新系統(tǒng)的統(tǒng)計信息,使得優(yōu)化器得到當(dāng)前最新的統(tǒng)計信息。當(dāng)修改或刪除一個表的相關(guān)數(shù)據(jù)時,系統(tǒng)的統(tǒng)計信息并不自動更新。比如:如果使用delete命令刪除一個數(shù)據(jù)庫表內(nèi)的一條記錄,刪除完成后查找systables內(nèi)關(guān)于該表的記錄信息時,將會發(fā)現(xiàn)nrows(數(shù)據(jù)庫表的記錄行數(shù)目)并沒有改變。而通過執(zhí)行update statistics命令,就可以使系統(tǒng)表systables、sysditrib、syscolumns、sysindexes等表內(nèi)的信息得到更新。在運行完update statistics后,這時就會發(fā)現(xiàn)systables內(nèi)的nrows字段已得到更新。如果執(zhí)行update statistics  medium(high),在sysdistrib表內(nèi)還可以得到更新的數(shù)據(jù)分布信息。所以,當(dāng)大量地修改數(shù)據(jù)庫表后最好執(zhí)行一下update statistics操作。另外,update statistics將強迫存儲過程的優(yōu)化(對sysprocpplan更新)。以下是與update statistics 相關(guān)的系統(tǒng)表: 

1、syscolumns: 
描述了數(shù)據(jù)庫內(nèi)的每個字段,其中的colmin、colmax存儲了數(shù)據(jù)庫各表字段的次小及次大值,這些值只有在該字段是索引且運行了Update statistics之后才生效。如對于字段值1、2、3、4、5,則4為次大值,2為次小值。 

2、sysdistrib: 
存儲了數(shù)據(jù)分布信息。該表內(nèi)提供了詳細(xì)的表字段的信息用于提供給優(yōu)化器優(yōu)化SQL  Select語句的執(zhí)行。當(dāng)執(zhí)行update statistics  medium(high)之后將往此表存入信息。 
執(zhí)行“dbschema -hd”可以得到指定表或字段的分布信息 

2、sysindexes: 
描述了數(shù)據(jù)庫內(nèi)的索引信息。對于數(shù)據(jù)庫內(nèi)的每個索引對應(yīng)一條記錄。修改索引之后只有執(zhí)行Update statistics才能使其改變在該表內(nèi)得到反映。同時也更新clust的數(shù)值,在該表的數(shù)據(jù)頁數(shù)目及數(shù)據(jù)庫記錄條數(shù)之間 

3、systables: 
通過執(zhí)行Update statistics可以更新nrows數(shù)據(jù) 

update statistics有以下三種級別: 

1、LOW: 
缺省為LOW,此時搜集了關(guān)于column的最少量信息。只有systables、syscolumns、sysinexes內(nèi)的內(nèi)容改變,不影響sysdistrib。為了提高效率,一般對非索引字段執(zhí)行LOW操作 

2、HIGH: 
此時構(gòu)建的分布信息是準(zhǔn)確的,而不是統(tǒng)計意義上的。 
因為耗費時間和占用CPU 資源,可以只對表或字段執(zhí)行HIGH操作。對于非常大的表,數(shù)據(jù)庫服務(wù)器將掃描一次每個字段的所有數(shù)據(jù)??梢耘渲肈BUPSPACE環(huán)境變量來決定可以利用的最大的系統(tǒng)磁盤空間 
3、MEDIUM: 
抽樣選取數(shù)據(jù)分布信息,故所需時間比HIGH要少 
什么時候應(yīng)該執(zhí)行update ststistics ? 
建議在以下情況,執(zhí)行update statistics 操作: 
對數(shù)據(jù)做了大量修改,大量是針對數(shù)據(jù)的分布而言,若數(shù)據(jù)分布沒有明顯的改變則可以不做 
改變的數(shù)據(jù)庫表有與之相關(guān)的存儲過程,避免在運行時存儲過程重新優(yōu)化 
數(shù)據(jù)庫升級之后完成對索引的轉(zhuǎn)變 
update ststistics 的方法 
考慮到速度性能因素,執(zhí)行update statistics的推薦方法: 
對表執(zhí)行:update  statistics medium for table ####  distributions only 
對每個索引的首字段執(zhí)行:update statistics high 
對復(fù)合索引執(zhí)行:update statistics low 
必要時對非索引字段但在條件中使用到的字段執(zhí)行Update statistics high操作

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多