SQL调优V.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL调优V.ppt

SQL语句调优 主要内容: 当系统出现性能瓶颈时如何考虑优化 优化SQL需要理解的几个概念 外表和内表,合并所有相匹配的行,对于外表和内表都只扫描一次。由于该方法进行表连接前,必须将所有的连接表排序,所以其成本通常比较高。 哈希连接 当一个或多个连接表上没有索引时,或者必须从所有连接表中读取大数据量 行时,通常使用该种连接方法。在该方法中,需要扫描其中一个表,通常扫描较小的表,用它在内存中构建哈希表。通过哈希函数,将具有相同哈希值的行放在一个内存中。在扫描完第一个表并将结果放在哈希表中之后,扫描第二个表,并在哈希表中查找该表中的每一行,看是否可以进行连接。哈希连接通常比合并连接快,因为它没有涉及排序的操作。 优化SQL语句 6.尽量避免在SQL中使用硬编码方式 SQL中应该尽量使用占位符,DB2优化器第一次生成访问计划后,会把访问计划存放在PACKAGE缓存中,当应用程序再次进行绑定时,DB2优化器会从包缓存中查找访问计划,如果能从包缓存中找到,直接执行,如果找不到,重新生成访问计划。生成访问计划也是一项非常消耗资源的工作,所以避免使用硬编码对于提升整个性能是有很大帮助的。例: 使用硬编码方式的SQL : UPDATE MAT_MATERIAL SET REQ_AMOUNT = 2.24420 --需用数量 ,DELIVER_TIME = ‘2010-01-22’ --交货期 WHERE MATERIAL_ID = 674299; 修改为使用占位符方式 : UPDATE MAT_MATERIAL SET REQ_AMOUNT = ? --需用数量 ,DELIVER_TIME = ? --交货期 WHERE MATERIAL_ID = ?; 7.SQL中使用GROUP BY 替代DISTINCT 避免在程序中滥用DISTINCT,DISTINCT的效率等同于GROUP BY,但是GROUP BY可读性优于DISTINCT。例: 使用DISTINCT方式: SELECT DISTINCT MAT_NAME --物资名称 , BID_ZBQBBH --签报编号 FROM MAT_MATERIAL 使用GROUP BY 方式: SELECT MAT_NAME --物资名称 , BID_ZBQBBH --签报编号 FROM MAT_MATERIAL GROUP BY MAT_NAME --物资名称

文档评论(0)

000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档