国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

使用DB2look 重新創建優化器訪問計劃(2)

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

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

假如您是一名 DBA,就可能會使用 DB2 SQL Explain Tool(db2exfmt)來獲得對于 SQL 訪問計劃的理解。db2exfmt 工具用于格式化解釋表的內容。假如您在生產中使用 db2exfmt 查看一個訪問計劃的輸出,就會注重到計劃頂部的下列內容。(注重:這些參數通常是由 db2look 輸出中的 -f 和 -fd 選項所選擇的,除了 dbheap 設置之外)。清單 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 的輸出,就在訪問計劃之后,您將看到是否具有影響優化器計劃的注冊表設置。

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

清單 4. 影響訪問計劃的注冊表設置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

創建數據定義語言(DDL)

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

這里,我們使用了下列參數:

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

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

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

收集數據庫子集的統計數據和 DDL

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

這里,我使用了下列附加參數:

-t:為特定的表生成統計數據。可以將表的最大數目指定為 30。

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

-z:模式名。假如同時指定了 -z 和 -a,那么將忽略 -z。聯邦區域將忽略模式名。

注重:-m 選項極其重要。該選項將從系統表收集所有統計數據。測試中的統計數據必須與生產中的相同,這些統計數據是可以在測試環境中模擬生產環境的要害。

db2exfmt 輸出的更多細節

數據庫治理器級的配置參數

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

更新數據庫治理器的配置參數。

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

CPU 速度(cpuspeed):

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

通信速度(comm_bandwidth):

SQL 優化器使用為通信帶寬所指定的值(每秒幾兆字節)來評估在分區數據庫系統中的分區服務器之間執行某些操作的成本。

數據庫級的配置參數

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

緩沖池大小(buffer pool size):

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

表 1. 緩沖池設置

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

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

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

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

排序堆大小(SORTHEAP)

該參數定義用于私有排序的私有內存頁面的最大數目,或用于共享排序的共享內存頁面的最大數目。

您應將之設置為與生產中相同的值。同樣,通過在 db2look 中使用 -fd 選項,您將注重到:!db2fopt SAMPLE update opt_sortheap 256;

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

數據庫堆大小(DBHEAP):

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

鎖列表大小(LOCKLIST):

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

最大鎖列表(MAXLOCKS):

該參數定義數據庫治理器執行升級之前必須填入的應用程序所占有鎖列表的百分比。

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

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

平均應用程序(AVG_APPLS):

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

優化級別(DFT_QUERYOPT):

查詢優化類用于在編譯 SQL 查詢時指導優化器使用不同的優化級別。

查詢深度(DFT_DEGREE):

用于 SQL 語句的分區內部并行程度。假如設置為 ANY,優化器就對聯機的實際 CPU 數目敏感。假如您使用 ANY,那么就應該將測試和生產系統上的 CPU 數目配置得相同,除非禁用分區內并行(intra_parallel)。

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

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

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

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

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

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

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

標簽: DB2 數據庫
相關文章:
主站蜘蛛池模板: 久在草| 国产精品日本一区二区不卡视频 | 日本一区二区高清免费不卡 | 91久久精品国产91久久性色tv | 国产亚洲91 | 老司机精品福利视频 | 久久视屏这里只有精品6国产 | a级黄色毛片免费播放视频 a级精品九九九大片免费看 | 国产精品久久久久久久免费大片 | 欧美亚洲在线视频 | 美女mm131爽爽爽免费视色 | 美女脱了内裤张开腿让男人桶网站 | 日韩视频一区二区 | 日本免费不卡在线一区二区三区 | 亚洲欧洲一二三区机械有限公司 | 免费国产黄网站在线观看视频 | 国产精品毛片一区 | 欧美日韩国产片 | 经典香港一级a毛片免费看 精品400部自拍视频在线播放 | 国产亚洲欧美日韩在线看片 | 视频一区 欧美 | 久久久久久免费精品视频 | 欧美做a一级视频免费观看 欧美做爱毛片 | 欧美一级毛片免费看视频 | 免费看欧美日韩一区二区三区 | 国产成人精品福利网站在线 | 国产午夜精品理论片久久影视 | 成人影院在线免费观看 | 国产一区成人 | 国产亚洲一区二区三区在线 | 成人高清无遮挡免费视频软件 | 一级做a免费视频观看网站 一级做a爰 | 亚洲国产一区二区三区四区五区 | 国产一级片网址 | 成人免费ā片 | 免费精品国产日韩热久久 | 国产一区二区三区久久小说 | 久久99在线| 2019偷偷狠狠的日日 | 亚洲天堂网在线播放 | 精品国产免费观看一区 |