DB2之SQL优化浅析.pdf

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

DB2之SQL优化浅析 白德全 西南区中心团队青海PSO 目录 为什么要做SQL优化 SQL优化建议 典型SQL案例 SQL语句对数据库的影响 1、SQL语句是操作数据库的唯一途径,任何应用程 序对数据库的操作最终都会归结为SQL语句对数据 库的操作 2、SQL语句的执行效率对数据库系统的性能起到了 决定性作用 3、据统计SQL语句几乎消耗了70%~90%的数据库 资源 4 、SQL语句的不同写法在性能上的差异可能很大 我们的应用几乎全都是SQL SQL优化的意义 数据库资源是有限的,任何一条SQL语句的执 行都需要消耗一定的数据库资源(CPU、MEM、 I/O), 良好的DB2 SQL语句可以被数据库重复使 用从而减少分析时间、改善一个系统的性能、对提 高数据库内存区的命中率、减少I/O访问等有着非常 重要的意义。 优化的目的: 1、提升执行效率 2、减轻数据库开销 目录 为什么要做SQL优化 SQL优化建议 典型SQL案例 SQL优化的原则 1、尽量减少数据库查询次数,减少对数据资源的请 求次数 2、尽量使用索引,避免全表扫描,提升检索效率 3、尽量避免多表关联以及子查询的使用,一切从简 目标:减少SQL复杂度,提高效率,只要够快,咋 走都行~~ SQL优化方法 • 合理的设置分区键 1.建表时必须明确指明表空间/索引表空间 2.建表时必须指明分区键partitioning key,注意分区键的选择应当尽量使 用值域大、值分布均匀的字段,比如phone_no等 Create table tab_name( col1 int, col2 varchar(10) ) partitioning key(col1) in tbs_store index in tbs_idx not logged initially 3.可使用如下语句察看表数据是否分布均匀: select nodenumber(phone_no), count(*) from tmp1_vgrp_inet_call group by nodenumber(phone_no) SQL优化方法 • 合理的使用索引 1. 基于效率问题来考虑使用索引,索引字段的选择应当是在 where子句中的关联字段 2.大量数据插入表时,如果该表已经建立了索引,效率会降 低(但不会太明显) 3.索引的创建也会增加sql的总体执行时间,因此需要平衡总 体的耗时,比如如果该表会多次使用,则倾向建立索引 4.如果表本身就需要全表扫描,则可以不建立索引 5.当发现某些sql执行时间很长时,应当考虑索引的使用 6.在关联字段一般为联合字段的情况下应当使用复合索引, 否则更倾向于各个关联字段建立各自的索引 SQL优化方法 • 合理的使用表连接 1. 数据量小的表作为左表(当然在业务逻辑允许的情况下) 2. 将使用条件筛选的表作为左表 3. 具有索引选择操作的表作为左表,否则每扫描左表中的一 行,就要扫描一遍整个表 4. 重复记录少的表更趋向于作左表 5. 外关联时,on后面仅仅存放关联条件,对于关联表内部的 条件应当放在where子句中 SQL优化方法 • 有效利用执行计划 1.通过查看sql执行计划,可以得到该sql的成本消耗,对sql 的优化可以成为重要的参考信息 db2expln -d db_name -u user_n

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档