正如將在下面的 排序堆 一節中所看到的,它的工作方式與排序堆的相同。 如果您是一名 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: 1
如果您稍稍深入查看 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
[1] [2] 下一頁
|