免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2917 | 回复: 0
打印 上一主题 下一主题

DB2中SQL语句优化 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-27 22:14 |只看该作者 |倒序浏览
摘要:DB2中SQL语句同样需要进行优化,良好的SQL语句可以被数据库重复使用从而减少分析时间、改善一个系统的性能、对提高数据库内存区的命中率、减少I/O访问等有着非常重要的意义。
标签:DB2 SQL语句
DB2 SQL语句相信大家都不陌生,良好的DB2 SQL语句让数据库的性能更稳定。那么DB2 SQL语句应该如何优化呢?下文就将带您寻找答案。

应用程序对DB2数据库的操作最终表现为SQL语句对数据库的操作。良好的DB2 SQL语句可以被数据库重复使用从而减少分析时间、改善一个系统的性能、对提高数据库内存区的命中率、减少I/O访问等有着非常重要的意义。

在DB2数据统计和分析系统中,数据的物理位置比逻辑位置更重要,因为数据库必须查找数据,以便返回给查询用户。因此,调整SQL的关键是如何使数据查找的路径最简化。通常可以采用下面的方法优化SQL对数据操作的表现。

(1)减少对DB2数据库的查询次数,即减少对系统资源的请求。

(2)使用临时表空间,把表的子集在临时表中进行排序,有助于避免多重排序操作。为了加速SQL查询至少应该创建一个表空间供临时段单独使用。

(3)限制动态SQL的使用,虽然动态SQL很好用,但是即使在SQL共享池中有一个完全相同的查询值,动态SQL也会重新进行语法分析。

(4)避免不带任何条件的SQL语句的执行。没有任何条件的SQL语句在执行过程中要进行全表扫描,这样的扫描往往需要很长时间,因此会大大降低检索效率。

(5)避免相关子查询一个字段的标签同时在主查询和where子句中的查询中出现,那么很可能当主查询中的字段值改变之后,子查询必须重新查询一次。查询嵌套层次越多,效率越低。因此,应当尽量避免子查询。如果子查询不可避免,那么应在子查询中过滤掉尽可能多的行。

(6)尽量使用相同的或非常类似的SQL语句进行查询,这样不仅充分利用内存中的已经分析的语法树,还能使要查询的数据在缓冲池中命中的可能性也会大大增加。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP