WEB开发网
开发学院数据库DB2 使用DB2look重新创建优化器访问计划(8) 阅读

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

 2007-08-06 16:23:20 来源:WEB开发网   
核心提示:现在进行修改:向测试环境添加相同数目的逻辑分区之后,测试环境看上去将像原始的生产设置了,使用DB2look重新创建优化器访问计划(8),如下表所示,生产设置:数据库分区(DBPARTITIONALLNODES(在节点 1 到 64 上)NODE1(节点 1 上所定义的 db 分区)NODE2(节点 5 上所定义的 db

现在进行修改:向测试环境添加相同数目的逻辑分区之后,测试环境看上去将像原始的生产设置了,如下表所示。

生产设置:

数据库分区(DBPARTITION

ALLNODES(在节点 1 到 64 上)
NODE1(节点 1 上所定义的 db 分区)
NODE2(节点 5 上所定义的 db 分区)

表空间(TABLESPACE)

TABSPACE1(DMS 使用数据库分区 ALLNODES 中定义的设备)
TABSPACE2(DMS 使用数据库分区 NODE1 中定义的 SMS)
TABSPACE3(DMS 使用数据库分区 NODE2 中定义的 DMS)

TABSPACE1 中的 TAB1
TABSPACE2 中的 TAB2
TABSPACE3 中的 TAB3

MQT:

TAB3 上定义的 MQT

视图:

定义的 VIEW1,包含两个表 TAB1 和 TAB2

请确保在发出查询的节点上使用 -f 和 -fd 收集 db2look,以确保从该节点和注册表设置中获取前面所讨论的缓冲池信息,以及从运行查询的节点获取 db cfg 和 dbm cfg。以我的经验,客户的所有节点通常具有相同的配置,除了缓冲池这个极其重要的设置之外。

所遵循的步骤:

从生产中收集存储器信息:

db2look -d <dbname> -l -o storage.out

修改表空间/缓冲池信息以适应这些环境。如果您没有可用的设备,那么就使用 DMS 文件容器。同样,如果您不希望在测试中使用与生产中相同数目的容器,就缩短列表并使用较少容器。但是,您同样必须确保如果生产中的表空间是 DMS 或 SMS 类型的,那么在测试中要保留相同的类型。

使用下列命令收集配置信息:

db2look -d <dbname> -f -fd -o config.out

现在,仅仅为我们感兴趣的对象收集 db2look 信息。本例中,我们需要所有相关信息,包括表 DLL、视图以与表相关的 MQT:

db2look -d <dbname> -e -a -m -t TAB1
TAB2 TAB3 -o db2look.out

一旦收集了所有这些信息并修改了表空间/缓冲池信息,就在测试环境中执行 db2look 输出文件,并且重新从生产和测试中获取 db2exfmt 输出并进行比较。

这是一个关于在表上进行活动时在哪里收集 RUNSTATS 信息的经典示例。您将获得 SQL1227N 错误消息,并且将无法重新创建该问题,除非手工修改统计数据。

Tags:使用 DBlook 重新

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接