电脑技术学习

使用DB2look重新创建优化器访问计划

dn001

  步骤 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: 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

  现在,查看访问计划。假如它们是相同的,那么您就成功地重新创建了访问计划。还请注重,您还应查看 db2exfmt 输出结尾以验证表空间配置是匹配的。

  示例 4:  生产:MPP,4 个逻辑分区/ 16 个物理分区。

  测试:MPP,4 个逻辑分区,每个逻辑分区中只有 4 台可用的物理机器。

  查询中所涉及的表、视图/MQT。

  本示例中,该模拟可能不会准确工作。测试和生产中的分区数目必须相同。然而,您仍可以尝试重新创建,只是它不会正确。

  因此,您必须向测试环境添加 16*4=64 个分区,以便重新创建正确。测试环境中不需要 16 台物理机器;即您可以具有 4 台物理机器,每台物理机器具有 16 个逻辑分区。这由您来决定,但总共必须有 64 个逻辑分区,与生产中相同。