使用DB2look 重新創(chuàng)建優(yōu)化器訪問計劃(5)
發(fā)表時間:2024-02-25 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]示例 3: 您需要在單分區(qū)的環(huán)境中模擬生產(chǎn)中的整個數(shù)據(jù)庫以進行測試。 注意:如果測試中的數(shù)據(jù)庫名與生產(chǎn)中的不同,那么可能需要修改每個 db2look 輸出中的數(shù)據(jù)庫名。 步驟 1:使用 -l 選項收集 db2look,以收集表空間/緩沖池/數(shù)據(jù)庫節(jié)點組信息。 db2look -d <...
示例 3:
您需要在單分區(qū)的環(huán)境中模擬生產(chǎn)中的整個數(shù)據(jù)庫以進行測試。
注意:如果測試中的數(shù)據(jù)庫名與生產(chǎn)中的不同,那么可能需要修改每個 db2look 輸出中的數(shù)據(jù)庫名。
步驟 1:使用 -l 選項收集 db2look,以收集表空間/緩沖池/數(shù)據(jù)庫節(jié)點組信息。
db2look -d <dbname> -l -o storage.out
修改表空間信息以適應(yīng)您的測試環(huán)境。例如,在生產(chǎn)中,您具有下列表空間:
------------------------------------
-- DDL Statements for TABLESPACES --
------------------------------------
CREATE REGULAR TABLESPACE DMS1 IN DATABASE PARTITION GROUP IBMDEFAULTGROUP
PAGESIZE 4096 MANAGED BY DATABASE
USING ( FILE ’/data/dms1’20000,
FILE ’/data/dms2’20000,
FILE ’/data/dms3’20000)
EXTENTSIZE 32
PREFETCHSIZE 32
BUFFERPOOL IBMDEFAULTBP
OVERHEAD 12.670000
TRANSFERRATE 0.180000
DROPPED TABLE RECOVERY ON;
如果測試上沒有設(shè)置相同的路徑,那么就要修改上面的位置。如果您僅僅計劃模擬環(huán)境,而不要復(fù)制整個數(shù)據(jù),那么就減小文件的大小,并在必要時使用較少容器。如果沒有創(chuàng)建相同的緩沖池,那么您還可能修改緩沖池名稱。緩沖池必須具有相同的頁面大。╬agesize)。不要修改表空間的頁面大小。一旦處理了這些并創(chuàng)建了數(shù)據(jù)庫,就運行 storage.out 文件:
db2 -tvf storage.out
如果需要,就重新定向輸出以確保都成功運行了。例如:
db2 -tvf storage.out > storage_results.out
步驟 2:從生產(chǎn)中收集配置和環(huán)境變量信息,并在測試系統(tǒng)上運行它:
db2look -d sample -f -fd -o config.out
請記住,在 MPP 環(huán)境中,這將為運行該命令的節(jié)點收集該信息。如果不同的數(shù)據(jù)庫分區(qū)上的 DB2 注冊表和數(shù)據(jù)庫以及數(shù)據(jù)庫管理器配置不同,您將需要為每個節(jié)點分別收集該信息。然而,如果測試中無法具有與生產(chǎn)中相同的分區(qū),那么就從生產(chǎn)中執(zhí)行該查詢的節(jié)點中收集該信息,然后在測試中使用該信息。
請注意,如果測試中具有不同的分區(qū)數(shù)目,那么您的模擬將有所欠缺。
在測試系統(tǒng)上,運行 config.out 文件,如下:
db2 -tvf config.out
上面考慮到優(yōu)化器將使用 db2fopt 信息來查看所分配的總的緩沖池和排序堆,現(xiàn)在將成為測試環(huán)境中的設(shè)置。而且,這也是在測試中由于內(nèi)存約束而不具有與生產(chǎn)中相同的緩沖池以及排序堆時所使用的技術(shù)。同時,本文前面所討論的配置參數(shù)以及環(huán)境變量也將進行更新。
步驟 3:當(dāng)模擬整個數(shù)據(jù)庫時,從生產(chǎn)中收集所有對象的 DDL 信息,并在測試中運行 db2look。
在生產(chǎn)中:
db2look -d sample -e -a -m -o db2look.out
在測試中:
db2 -tvf db2look.out
為了看到輸出結(jié)果,可發(fā)出:
db2look -tvf db2look.out > db2look.results
一旦完成了以上步驟,就請確保在測試中將 dbheap 數(shù)據(jù)庫配置參數(shù)設(shè)置為與生產(chǎn)中相同的值。
步驟 4:使用 db2exfmt 從測試和生產(chǎn)中獲得訪問計劃,并確保下列內(nèi)容與生產(chǎn)中的相同:
Database Context:
----------------
Parallelism: None
CPU Speed: 4.762804e-07
Comm Speed: 100
Buffer Pool size: 128500
Sort Heap size: 128
Database Heap size: 5120
Lock List size: 12250
Maximum Lock List: 10
Average Applications: 4
Locks Available: 78400
Package Context:
---------------
SQL Type: Dynamic
Optimization Level: 3
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: 1
[1] [2] 下一頁