【俊哥儿张】用db2look 模拟表的统计信息
上一篇 /
下一篇 2008-07-30 13:45:06
/ 个人分类:DB2
用db2look模拟表的统计信息
如果测试数据库用于测试性能或调试性能问题,则对两个数据库生成的访问方案应该完全相同。优化器根据统计信息、配置参数、注册表变量和环境变量来生成访问方案。如果两个系统间的这些设置完全相同,则访问方案很可能是相同的。
如果将完全相同的数据装入到两个数据库中,并且对它们两个执行相同的RUNSTATS选项,则统计信息也应该完全相同。
但是,如果数据库包含不同数据,或者如果测试数据库中只使用数据的子集,则统计信息可能会有显著差别。在这种情况下,可使用db2look来从生产数据库收集统计信息并将它们放在测试数据库中。通过对可更新表的SYSSTAT集合创建UPDATE语句并对所有表创建RUNSTATS命令来执行此操作。
用于创建统计信息语句的选项为-m。返回至SAMPLE/SAMPLE2示例,从SAMPLE收集统计信息并将其添加至SAMPLE2:
db2look -d sample -m > stats.dml
--用户为:
--以模拟方式运行db2look
像以前一样,必须编辑输出文件以便将CONNECT TOSAMPLE语句更改为CONNECT TOSAMPLE2。而且再看一下文件内容的余下部分,以了解某些RUNSTATS语句和UPDATE语句的情况:
...
--模拟表ORG
RUNSTATS ON TABLE "DB2"."ORG" ;
UPDATE SYSSTAT.INDEXES
SET NLEAF=-1,
NLEVELS=-1,
FIRSTKEYCARD=-1,
……
RUNSTATS ON TABLE "DB2"."ORG";
……
最后,对SAMPLE2运行修改后的脚本:
db2 –tvf stats.dml
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: