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

来源:岁月联盟 编辑:zhuzhu 时间:2007-08-03

步骤 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 个逻辑分区,与生产中相同。