使用DB2look重新創建優化器訪問計劃
步驟 3:當模擬整個數據庫時,從生產中收集所有對象的 DDL 信息,并在測試中運行 db2look。
在生產中:db2look -d sample -e -a -m -o db2look.out
在測試中:db2 -tvf db2look.out
為了看到輸出結果,可發出:db2look -tvf db2look.out > db2look.results
一旦完成了以上步驟,就請確保在測試中將 dbheap 數據庫配置參數設置為與生產中相同的值。
步驟 4:使用 db2exfmt 從測試和生產中獲得訪問計劃,并確保下列內容與生產中的相同:Database Context:----------------Parallelism: NoneCPU Speed: 4.762804e-07Comm Speed: 100Buffer Pool size: 128500Sort Heap size: 128Database Heap size: 5120Lock List size: 12250Maximum Lock List: 10Average Applications: 4Locks Available: 78400Package Context:---------------SQL Type: DynamicOptimization Level: 3Blocking: Block All CursorsIsolation Level: Cursor Stability---STATEMENT 1 SECTION 201 ----QUERYNO: 1QUERYTAG: CLPStatement Type: SelectUpdatable: NoDeletable: NoQuery Degree: 1
現在,查看訪問計劃。假如它們是相同的,那么您就成功地重新創建了訪問計劃。還請注重,您還應查看 db2exfmt 輸出結尾以驗證表空間配置是匹配的。
示例 4:生產:MPP,4 個邏輯分區/ 16 個物理分區。
測試:MPP,4 個邏輯分區,每個邏輯分區中只有 4 臺可用的物理機器。
查詢中所涉及的表、視圖/MQT。
本示例中,該模擬可能不會準確工作。測試和生產中的分區數目必須相同。然而,您仍可以嘗試重新創建,只是它不會正確。
因此,您必須向測試環境添加 16*4=64 個分區,以便重新創建正確。測試環境中不需要 16 臺物理機器;即您可以具有 4 臺物理機器,每臺物理機器具有 16 個邏輯分區。這由您來決定,但總共必須有 64 個邏輯分區,與生產中相同。
相關文章:
