网站大量收购独家精品文档,联系QQ:2885784924

开发中应注意一些的SQL写法.ppt

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

开发中应注意一些的SQL写法 2010.12 一、操作符 二、SQL书写的影响 三、其它情况 一、操作符 IN与EXISTS操作符 在业务密集的SQL当中尽量不采用IN操作符,NOT IN最好是不要使用,用EXISTS 和NOT EXISTS方案代替 UNION与UNION ALL 操作符 UNION在进行表链接后会筛选掉重复的记录,UNION ALL操作只是简单的将两个结果合并后就返回 大于、小于、不等于操作符 和 推荐改成=和=,a0改a0 or a0 LIKE操作符 LIKE操作符如果用得不好则会产生性能上的问题,如LIKE ‘%张%’ 这种查询不会引用索引,而LIKE ‘张%’则会引用范围索引 少用* 应按需要多少取多少的原则,少用* Or操作符 用了or语句,数据库优化器无法优化,大表查询进可以考虑将or改成UNION ALL having操作符 需要使用having时,尽可能先用where过虑掉不需要的数据后使用 二、SQL书写的影响 同一功能同一性能不同书写SQL的影响 以利用SGA共享池,防止相同的Sql语句被多次分析 WHERE后面的条件顺序影响 一般建议那些可以过滤掉最大数量记录的条件写在WHERE子句的末尾 书写条件列时避免改变列的类型 例如:A例为数值型,下面两种写法都可以得到结果 A=123 或是 A=’123’,但第一种效率优于第二种。因为oracle需对第二种写法进行类型转换 使用表的别名 当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column上.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误 三、其它情况 条件字段不进行函数处理或是计算操作 条件字段尽量不进行函数处理或是计算操作,特别是索引列,因为进行函数处理后索引将会不起作用 用索引提高效率 尽量使用索引列做为查询条件,避免在索引列上使用NOT 通常,还在在索引条件列中也不要使用‘||字符连接函数,就象其他函数那样, 也会停用了索引。IS NULL 、IS NOT NULL操作判断字段是否为空一般是不会应用索引的,因为索引是不索引空值的 尽量多使用COMMIT 只要有可能,在程序中尽量多使用COMMIT, 这样程序的性能得到提高,需求也会因为COMMIT所释放的资源而减少 减少数据库的访问 使用decode函数可以避免重复扫描相同记录或重复连接相同的表。 例如: select count(*),sum(sal) from emp where dept_no = 0020 and ename like ‘smith%’; select count(*),sum(sal) from emp where dept_no = 0030 and ename like ‘smith%’; 可以用decode函数高效地得到相同结果 select count(decode(dept_no,0020,’x’,null)) d0020_count, count(decode(dept_no,0030,’x’,null)) d0030_count, sum(decode(dept_no,0020,sal,null)) d0020_sal,sum(decode(dept_no,0030,sal,null)) d0030_sal from emp where ename like ‘smith%’; 以上列举的是在开发过程中一些常见的SQL编写中需要注意的问题,如果把这个SQL常见的问题在开发中得以避免,将有利于缩短了后期的优化的时间,减少系统的隐患。 谢谢! * * * * * * * * * * * * * * * * * * * * * * * * * *

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档