色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

使用DB2look 重新創(chuàng)建優(yōu)化器訪問計劃(2)

瀏覽:3日期:2023-11-11 12:42:48

提示:正如將在下面的 “排序堆 一節(jié)中所看到的,它的工作方式與排序堆的相同。 假如您是一名 DBA,就可能會使用 DB2 SQL Explain&正如將在下面的 “排序堆 一節(jié)中所看到的,它的工作方式與排序堆的相同。

假如您是一名 DBA,就可能會使用 DB2 SQL Explain Tool(db2exfmt)來獲得對于 SQL 訪問計劃的理解。db2exfmt 工具用于格式化解釋表的內(nèi)容。假如您在生產(chǎn)中使用 db2exfmt 查看一個訪問計劃的輸出,就會注重到計劃頂部的下列內(nèi)容。(注重:這些參數(shù)通常是由 db2look 輸出中的 -f 和 -fd 選項所選擇的,除了 dbheap 設(shè)置之外)。清單 3. db2exfmt 的示例輸出:Database Context: ---------------- Parallelism:None CPU Speed: 6.523521e-07  Comm Speed: 100 Buffer Pool size:  50000 Sort Heap size: 10000 Database Heap size: 5120 Lock List size: 1000 Maximum Lock List: 10 Average Applications:  1 Locks Available:7849 Package Context: --------------- SQL Type:  Dynamic Optimization Level: 5 Blocking:  Block All Cursors Isolation Level:Cursor Stability ---------------- STATEMENT 1 SECTION 201 ---------------- QUERYNO:1 QUERYTAG:  CLP Statement Type: Select Updatable: No Deletable: No Query Degree: 

假如您稍稍深入查看 db2exfmt 的輸出,就在訪問計劃之后,您將看到是否具有影響優(yōu)化器計劃的注冊表設(shè)置。

注重:另外,遺憾的是,db2look -f 并非列出了所有相關(guān)的注冊表變量。您將需要添加那些遺漏的。一般來說,您測試系統(tǒng)上的注冊表變量設(shè)置應(yīng)與生產(chǎn)系統(tǒng)上的相同,或者盡可能接近。

清單 4. 影響訪問計劃的注冊表設(shè)置1) RETURN: (Return Result) Cumulative Total Cost: 57.6764 Cumulative CPU Cost:191909 Cumulative I/O Cost:2 Cumulative Re-Total Cost:  5.37264 Cumulative Re-CPU Cost: 134316 Cumulative Re-I/O Cost: 0 Cumulative First Row Cost: 26.9726 Estimated Buffer pool Buffers:  2 Arguments: --------- BLDLEVEL: (Build level) DB2 v8.1.0.80 : s041221 ENVVAR : (Environment Variable)  DB2_ANTIJOIN=yes DB2_INLIST_TO_NLJN = yes STMTHEAP: (Statement heap size) 2048

創(chuàng)建數(shù)據(jù)定義語言(DDL)

下列 "db2look" 命令創(chuàng)建了 DDL 以復(fù)制所有數(shù)據(jù)庫對象,以及配置和統(tǒng)計信息。db2look -d <dbname> -e -a -m -o db2look.out核心提示:這里,我們使用了下列參數(shù): -a:為所有的創(chuàng)建器(creator)生成統(tǒng)計數(shù)據(jù)。假如指定了該選項,那么將忽略 -u 選項。 -e:提取復(fù)制數(shù)據(jù)庫所需的&n。

這里,我們使用了下列參數(shù):

-a:為所有的創(chuàng)建器(creator)生成統(tǒng)計數(shù)據(jù)。假如指定了該選項,那么將忽略 -u 選項。

-e:提取復(fù)制數(shù)據(jù)庫所需的 DDL 文件。該選項生成包含了 DDL 語句的腳本。該腳本可以在另一數(shù)據(jù)庫上運行以重新創(chuàng)建數(shù)據(jù)庫對象。

-m:以模擬模式運行 db2look 實用程序。該選項生成包含了 SQL UPDATE 語句的腳本。這些 SQL UPDATE 語句捕捉所有的統(tǒng)計數(shù)據(jù)。該腳本可以在另一數(shù)據(jù)庫上運行以復(fù)制原來的那一個數(shù)據(jù)庫。當(dāng)指定 -m 選項時,將忽略 -p、-g 和 -s 選項。

收集數(shù)據(jù)庫子集的統(tǒng)計數(shù)據(jù)和 DDL

為了僅僅收集某些表和相關(guān)對象的統(tǒng)計數(shù)據(jù)和 ddl,可使用下列命令:db2look -d <dbname> -e -a -m -t <table1> <table2>.. <tableX> -o table.ddl

這里,我使用了下列附加參數(shù):

-t:為特定的表生成統(tǒng)計數(shù)據(jù)。可以將表的最大數(shù)目指定為 30。

此外,假如您不使用 -a 選項,就可以使用 -z 選項:

-z:模式名。假如同時指定了 -z 和 -a,那么將忽略 -z。聯(lián)邦區(qū)域?qū)⒑雎阅J矫?/p>

注重:-m 選項極其重要。該選項將從系統(tǒng)表收集所有統(tǒng)計數(shù)據(jù)。測試中的統(tǒng)計數(shù)據(jù)必須與生產(chǎn)中的相同,這些統(tǒng)計數(shù)據(jù)是可以在測試環(huán)境中模擬生產(chǎn)環(huán)境的要害。

db2exfmt 輸出的更多細(xì)節(jié)

數(shù)據(jù)庫治理器級的配置參數(shù)

注重:使用命令 db2 "get dbm cfg" 查看這些參數(shù),并使用并行性(Parallelism):db2 "update dbm cfg using <parameter> <value>"

更新數(shù)據(jù)庫治理器的配置參數(shù)。

該參數(shù)表明是啟用分區(qū)間并行性(inter-partition parallelism),還是啟用內(nèi)部分區(qū)并行性(intra-partition parallelism)。假如這是具有多個分區(qū)的 DPF,那么您將看到 Inter Partition Parallelism。假如這只是 SMP(啟用 intra_parallel)單個節(jié)點環(huán)境,那么您將看到 Intra Partition Parallelism。假如啟用了 intra_parallel,并且是多個分區(qū)的環(huán)境,您將看到該參數(shù)為 Inter and Intra partitions parallelism。最后,假如沒有分區(qū)間或分區(qū)內(nèi)并行性,該參數(shù)將顯示 NONE。

CPU 速度(cpuspeed):

SQL 優(yōu)化器使用 CPU 速度(每條指令幾微秒)來評估某些操作的執(zhí)行成本。

通信速度(comm_bandwidth):

SQL 優(yōu)化器使用為通信帶寬所指定的值(每秒幾兆字節(jié))來評估在分區(qū)數(shù)據(jù)庫系統(tǒng)中的分區(qū)服務(wù)器之間執(zhí)行某些操作的成本。

數(shù)據(jù)庫級的配置參數(shù)

注重:使用命令 db2 "get db cfg for " 來查看這些參數(shù),以及使用 db2 "update db cfg for using ") 來更新數(shù)據(jù)庫配置參數(shù)。

緩沖池大小(buffer pool size):

假如使用 buffpage 作為一個緩沖池的默認(rèn)值,那么 db2exfmt 輸出中顯示的緩沖池大小就是由 buffpage 參數(shù)決定的,或者基于 syscat.bufferpools 的內(nèi)容進(jìn)行計算。所顯示的數(shù)目就是分配給數(shù)據(jù)庫的緩沖池頁面的總數(shù)目。例如,假設(shè)我們具有下列緩沖池:

表 1. 緩沖池設(shè)置

緩沖池名稱大小IBMDEFAULTBP1000 BP11000 BP24000 BPIND11000 BPIND21000 BPLONG1000 BPTEMP1000 總數(shù):10,000

db2exfmt 輸出將顯示所有緩沖池中的頁面總數(shù)為總的大小。在上面的例子中,就是 10,000。 注重:頁面大小(Pagesize)無關(guān)緊要,僅僅是頁面的數(shù)目。

假如您無法在測試中分配到與生產(chǎn)中相同數(shù)量的緩沖池,那么可以在 db2look 中使用 -fd 選項來使用 db2fopt 備選命令。

在 MPP 中,優(yōu)化器為運行查詢的節(jié)點使用總的緩沖池信息時,要按每個節(jié)點來計算 opt_buffpage。因此,該修改將僅僅應(yīng)用到運行該工具的那個節(jié)點上。

排序堆大小(SORTHEAP)

該參數(shù)定義用于私有排序的私有內(nèi)存頁面的最大數(shù)目,或用于共享排序的共享內(nèi)存頁面的最大數(shù)目。

您應(yīng)將之設(shè)置為與生產(chǎn)中相同的值。同樣,通過在 db2look 中使用 -fd 選項,您將注重到:!db2fopt SAMPLE update opt_sortheap 256;

這將重寫 sortheap 配置參數(shù),優(yōu)化器也將之用作 sortheap 值。同樣,在運行時真正分配的排序堆(sortheap)實際上將由數(shù)據(jù)庫配置中的 sortheap 設(shè)置來決定。與 opt_buffpage 相同,假如您無法在測試系統(tǒng)上分配與生產(chǎn)系統(tǒng)上相同大小的排序堆(sortheap),那么可以使用 opt_sortheap。

數(shù)據(jù)庫堆大小(DBHEAP):

每個數(shù)據(jù)庫都有一個數(shù)據(jù)庫堆,數(shù)據(jù)庫治理器使用它來代表連接到數(shù)據(jù)庫上的所有應(yīng)用程序。 它包含表、索引、表空間和緩沖池的控制塊信息。

鎖列表大小(LOCKLIST):

該參數(shù)表示分配給鎖列表的存儲器大小。

最大鎖列表(MAXLOCKS):

該參數(shù)定義數(shù)據(jù)庫治理器執(zhí)行升級之前必須填入的應(yīng)用程序所占有鎖列表的百分比。

locklist 和 maxlocks 將幫助確定某掃描(索引掃描或表掃描)期間將持有的鎖類型,以及隔離級別。例如,您將在計劃中注重到(比如說)索引掃描操作:IXSCAN: (Index Scan) TABLOCK : (Table Lock intent) INTENT SHARE

注重:假如測試系統(tǒng)的 db2exfmt 輸出中的可用鎖(Locks Available)與生產(chǎn)系統(tǒng)不同,就不要進(jìn)行連接 —— 該差異不影響查詢計劃。

平均應(yīng)用程序(AVG_APPLS):

SQL 優(yōu)化器使用該參數(shù)來幫助評估在運行時有多少緩沖池可用于所選擇的訪問計劃中(因為連接到數(shù)據(jù)庫的所有活動應(yīng)用程序共享緩沖池)。

優(yōu)化級別(DFT_QUERYOPT):

查詢優(yōu)化類用于在編譯 SQL 查詢時指導(dǎo)優(yōu)化器使用不同的優(yōu)化級別。

查詢深度(DFT_DEGREE):

用于 SQL 語句的分區(qū)內(nèi)部并行程度。假如設(shè)置為 ANY,優(yōu)化器就對聯(lián)機的實際 CPU 數(shù)目敏感。假如您使用 ANY,那么就應(yīng)該將測試和生產(chǎn)系統(tǒng)上的 CPU 數(shù)目配置得相同,除非禁用分區(qū)內(nèi)并行(intra_parallel)。

除了以上修改之外,還必須確保其他一些參數(shù)都相同。

保留的高頻值數(shù)目(NUM_FREQVALUES):

該參數(shù)答應(yīng)您指定“高頻值(most frequent values)的數(shù)目,當(dāng)在 RUNSTATS 命令上指定 WITH DISTRIBUTION 選項時,將收集該值。

保留的分位數(shù)數(shù)目(NUM_QUANTILES):

該參數(shù)控制在 RUNSTATS 命令上指定 WITH DISTRIBUTION 選項時將收集的分位數(shù)(quantile)數(shù)目。

測試系統(tǒng)上的上述兩個參數(shù) NUM_FREQVALUES 和 NUM_QUANTILES 必須與生產(chǎn)系統(tǒng)中的相同,以便確保在測試系統(tǒng)上收集與生產(chǎn)中相同數(shù)目的頻值數(shù)目和分位數(shù)值。SQL 語句堆(4KB)(STMTHEAP):

在 SQL 語句的編譯期間,語句堆(statement heap)用作 SQL 編譯器的工作空間。該參數(shù)指定該工作空間的大小。假如測試中的該參數(shù)小于生產(chǎn)中的,您就可能會開始看到 SQL0101N 消息,因為缺乏編譯查詢所需要的語句堆空間。假如沒有足夠的語句堆用于動態(tài)連接枚舉,您也可能看到 SQL0437W RC=1,下降為貪婪連接枚舉。

標(biāo)簽: DB2 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 一二三中文乱码亚洲乱码 | 日本一区深夜影院深a | 欧美一区二区三区不卡片 | 亚洲黄色三级视频 | 成在线人视频免费视频 | 欧美日韩加勒比一区二区三区 | 91在线产啪 | 国产一线视频在线观看高清 | 亚洲综合国产一区二区三区 | 国产亚洲高清在线精品不卡 | 中文字幕在线无限2021 | 性欧美成人依依影院 | 亚洲精品高清在线 | www.成人| 日韩三级视频在线观看 | 欧美成在线视频 | 国产精品一二三区 | 免费高清欧美一区二区视频 | 性盈盈影院影院 | 免费观看欧美性一级 | 亚洲精品国产一区二区在线 | 亚洲美女网址 | 怡红院精品视频 | 精品一久久香蕉国产线看观 | 天天干夜夜怕 | 男女视频在线看 | 成人国产三级在线播放 | 久久久青青久久国产精品 | 国产成年网站v片在线观看 国产成人aa在线视频 | 在线观看黄网视频免费播放 | 国产黄a三级三级三级 | 大桥未久在线精品视频在线 | 一级片高清 | 午夜性爽爽爽 | 亚洲国产日韩成人综合天堂 | 国产自在自线午夜精品视频 | 国产成人综合久久精品亚洲 | 日本一级特黄aa毛片免费观看 | 国产精品网站 夜色 | 欧美日本综合一区二区三区 | 男人的天堂高清在线观看 |