您的位置:首页技术文章
文章详情页

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

【字号: 日期:2023-11-11 13:44:18浏览:58作者:猪猪
现在进行修改:向测试环境添加相同数目的逻辑分区之后,测试环境看上去将像原始的生产设置了,如下表所示。生产设置:数据库分区(DBPARTITIONALLNODES(在节点 1 到 64 上)NODE1(节点 1 上所定义的 db 分区)NODE2(节点 5 上所定义的 db 分区)表空间(TABLESPACE)TABSPACE1(DMS 使用数据库分区 ALLNODES 中定义的设备)TABSPACE2(DMS 使用数据库分区 NODE1 中定义的 SMS)TABSPACE3(DMS 使用数据库分区 NODE2 中定义的 DMS)表TABSPACE1 中的 TAB1TABSPACE2 中的 TAB2TABSPACE3 中的 TAB3MQT: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 TAB1TAB2 TAB3 -o db2look.out一旦收集了所有这些信息并修改了表空间/缓冲池信息,就在测试环境中执行 db2look 输出文件,并且重新从生产和测试中获取 db2exfmt 输出并进行比较。这是一个关于在表上进行活动时在哪里收集 RUNSTATS 信息的经典示例。您将获得 SQL1227N 错误消息,并且将无法重新创建该问题,除非手工修改统计数据。
标签: DB2 数据库