文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 专题 求职 读书
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» DB2 » 使用DB2look重新创建优化器访问计划(9)       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [转载] 使用DB2look重新创建优化器访问计划(9)  ( 查看:298  回复:0 )   
 
yaol
新新人类  点击可查看详细



帖子 5
精华 0
无忧币 25
积分 25
阅读权限 20
注册日期 2007-9-28
最后登录 2007-11-4 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-9-28 23:38   标题:使用DB2look重新创建优化器访问计划(9)
上一帖 |
该表具有一百万行记录,一个整型列上定义了主键。您运行带有分布和索引所有选项的 RUNSTATS,从而允许对表进行写访问。在获得表统计数据的时候,有 100,000 条附加记录插入了该表。因此对于表统计数据,CARD 将显示为 1,100,000。但是,在我们开始收集索引统计数据时,例如,对于整型列上所定义的主键,就插入了 10,000 条附加记录,因此,该表中的行数是 1,110,000,而主索引 FIRSTKEYCARD 将是 1,110,000。因此,您可以看到不一致性。表统计数据的 CARD 显示表中应该是 1,100,000 条记录,而主索引统计数据的 FIRSTKEYCARD 显示表中应该是 1,110,000 条记录。对于索引统计数据的更新将失败,并发出 SQL1227N rc=8 错误消息(本例中),因为索引的 FIRSTKEYCARD 大于表的 CARD。您必须手工修复这种不一致性,对于本例,就是使 FIRSTKEYCARD 等于 CARD,均等于 1,100,000,或者反过来 —— 即增加 CARD 到等于 FIRSTKEYCARD,均等于 1,110,000。

您还可能碰到许多其他的不一致性。请确保在将输出保存为文件的测试中运行带有 -m 选项的 DB2look 时,检查所有的不一致性,并进行修复。这里仅仅给出了一个不一致性的例子;您可能会碰到很多其他的不一致性,这将留给用户去修复所有这些不一致性,然后重新运行 db2look,将输出重定向到文件中以确保所有更新的统计数据都运行得很好,没有任何问题。


示例 6:


在该示例中,您在生产中获得 SQL0437W rc=1 警告消息,但在测试中没有看到它。本例中,按照上面的示例重新创建该问题。请确保 STMTHEAP 是相同的。如果它是不同的(例如出于某种原因,测试中高于生产中),那么您可能就不会看到相同的警告。同样,我们所讨论的其他参数也很重要。


SQL0437W rc=2 和其他返回代码也可以按照相同的方法重新进行创建。


其他错误消息,例如 SQL0101N 和 SQL0901N 也可以使用相同的方法重新进行创建。甚至可以重新创建编译器/优化器领域中的中断。当您处于更老的补丁包级别,并需要尝试最新补丁包级别以查看是否可以避免该问题时,或者当您需要尝试不同的优化级别以查看是否将暂时克服该问题时,这就极其有用。


结束语


db2look 是一个功能极其强大的实用程序,可以用于重新创建访问计划问题以及编译器问题,如本文中所讨论的那些。一旦重新创建了该问题,您就可以测试许多可以影响性能的变量,如修改优化级别,尝试注册表变量和更新不影响生产的统计数据,以及测试新的补丁包级别。您将发现这个方便的实用程序可用于调试问题和提高查询性能。



51cto三周年庆典 社区系列活动(购物卡、无忧币大派送!)
2007-9-28 23:381楼
[ 顶部 ]
     
论坛跳转:  

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号