文章詳情頁(yè)
使用DB2look重新創(chuàng)建優(yōu)化器訪問計(jì)劃(4)
瀏覽:38日期:2023-11-07 17:23:41
生成 db2exfmt 輸出:db2exfmt -d DUMMYDB -g TIC -w -1 -n % -s % -# 0-o test_dummydb_exfmt.txt檢查 test_dummydb_exfmt.txt 的內(nèi)容并查看訪問計(jì)劃:Access Plan:-----------Total Cost: 25.8843Query Degree: 1RowsRETURN( 1)CostI/O|4MSJOIN( 2)25.88432/-----+-----1 4TBSCAN TBSCAN( 3) ( 5)12.913 12.96821 1| |8 35TABLE: SKAPOOR TABLE: SKAPOORORG STAFF您在測(cè)試中獲得了一個(gè)不同于生產(chǎn)中的訪問計(jì)劃。本例中,顯然我們?cè)跍y(cè)試系統(tǒng)上已經(jīng)將 DFT_QUERYOPT(默認(rèn)的查詢優(yōu)化)從 5 修改為 3。因此,您看到的是 Merge Join 計(jì)劃,而非 Hash Join 計(jì)劃,以及有一點(diǎn)點(diǎn)區(qū)別的總成本(Total Cost)。因?yàn)檫@些計(jì)劃不匹配(假設(shè)您不確定為什么),所以要檢查 db2exfmt 輸出中的配置。見表 2。正如您可以看到的,測(cè)試(TEST)和生產(chǎn)(PRODUCTION)之間的惟一區(qū)別就是優(yōu)化級(jí)別(Optimization Level),我們特意將之從 5 修改為 3,只是為了顯示在測(cè)試環(huán)境中復(fù)制生產(chǎn)訪問計(jì)劃為何會(huì)不成功。本例中,您將使用下列 UPDATE 語(yǔ)句將 DFT_QUERYOPT 更新為5:UPDATE DB CFG FOR SAMPLE USING dft_queryopt 5然后,停止并重新連接數(shù)據(jù)庫(kù)。再次對(duì) DUMMYDB 發(fā)出 query.sql,并使用 db2exfmt 命令生成訪問計(jì)劃。這次,您將看到相同的訪問計(jì)劃。否則,就進(jìn)一步確保本文中所討論的所有優(yōu)化器相關(guān)的參數(shù)都是相同的。示例 2:該示例顯示了 db2look 命令中 -m 選項(xiàng)的重要性。前面用 -m 選項(xiàng)收集的統(tǒng)計(jì)數(shù)據(jù)在測(cè)試和生產(chǎn)中應(yīng)該相同。本例中,我們將看到?jīng)]有正確更新統(tǒng)計(jì)數(shù)據(jù)時(shí)計(jì)劃是如何變化的。數(shù)據(jù)庫(kù)治理器配置、數(shù)據(jù)庫(kù)配置和 db2set 注冊(cè)表變量與上面 示例 1 中的相同。這里的模式名是 SKAPOOR。用您的表的模式替換它。數(shù)據(jù)庫(kù)是相同的,與 示例 1 中一樣是 SAMPLE 和 DUMMY。這里所使用的平臺(tái)和 db2level 是 AIX 5.1 和 DB2 UDB ESE V8.2,F(xiàn)ix pack 8,單分區(qū)。在 sample 數(shù)據(jù)庫(kù)上執(zhí)行下列命令:db2 "connect to sample"db2 "create index name_ind on staff (name,id)"db2 "runstats on table skapoor.staff withdistribution and indexes all"db2 "set current explain mode explain"db2 "select name from staff whereid=10 order by name"db2 "set current explain mode no"db2 "terminate"使用 db2exfmt 生成訪問計(jì)劃。您將看到下面的訪問計(jì)劃:Access Plan:-----------Total Cost: 0.111065Query Degree: 1RowsRETURN( 1)CostI/O|1IXSCAN( 2)0.1110650|35INDEX: SKAPOORNAME_IND從 sample 數(shù)據(jù)庫(kù)中收集 db2look 信息:db2look -d sample -l -o storage.outdb2look -d sample -e -a -m -t STAFF -o db2look.outdb2look ummy 數(shù)據(jù)庫(kù),而不是之前在上面示例1中所連接的sample數(shù)據(jù)庫(kù)。
標(biāo)簽:
DB2
數(shù)據(jù)庫(kù)
相關(guān)文章:
1. DB2信息集成提速異構(gòu)信息管理2. 提高商業(yè)智能環(huán)境中DB2查詢的性能(2)3. DB2 Performance Expert 簡(jiǎn)化性能管理和調(diào)優(yōu)(1)(1)4. 講解Oracle優(yōu)化器的優(yōu)化方式和優(yōu)化模式5. DB2中創(chuàng)建一個(gè)漢字拼音首字母的SQL函數(shù)(1)6. 使用智能優(yōu)化器提高Oracle的性能極限7. DB2的高可用性和災(zāi)難恢復(fù)概述8. 經(jīng)驗(yàn):解決DB2中出現(xiàn)的SQL1032N錯(cuò)誤現(xiàn)象9. AIX環(huán)境下實(shí)現(xiàn)DB2向Windows 2000遷移10. 實(shí)例講解DB2數(shù)據(jù)庫(kù)性能監(jiān)控的具體步驟
排行榜
