Oracle原厂数据库规范.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
? Oracle Corporation SQL开发规范 ? in 替换or ,比如select * from t where id=1 or id=2 or id=3,select * from t where id in (1,2,3) ? union 与or ,union有时比or更有效,or有时比union更有效,综合union 替换or或者or 替换union后是否能用到索引,以及条件的选择性来综合判 断和评估。 ? =替换,比如select count(1) from t where id=3 而不用select count(1) from t where id2 ? order by在对索引列进行排序时需要注意 ? order by 后面的字段顺序,应该和索引列(复合索引)的顺序 保持一致。 ? order by后面的字段如果为null,则不能用到索引 select id from t order by id. 索引在id列上,如果id列为null,则该语句 要用全表扫描再排序,如果为not null,则直接用索引扫描即可。 如果id列为null,则可以通过用where和order by置换的方式,比如 select id from t order by id 全表扫描再排序 select id from t where id0 直接扫描索引 32 ? Oracle Corporation SQL开发规范 ? 避免数据类型转换,如果 id列为number型,select * from t where id=?1?则会发生数据转换id=to_number(?1?),如果类似转换发生在索 引列上将导致索引不能被用到。 ? group by ,order by 尽量放到SQL的最末尾,这样可以把不需要 返回的行过滤掉,减少需要进行group by order by 操作的集。比 如select name from t group by name having name=?xxxx? 效率肯 定不如select name from t where name=?xxxx? group byname; ? !=操作符 除非必须必要,否则坚决避免使用!=操作符,因为使用!=会使 ORACLE无法使用索引,Oracle内核会假定查询会返回表中的多 数记录,因此就会走FULL TABLE SCAN。 33 ? Oracle Corporation 如何评估SQL语句的性能 ? 分析与SQL执行相关的配置 ? ? ? ? 参数:optimizer_index_cost_adj 参数:optimizer_mode 参数:sql_trace 参数:db_file_multiblock_read_count ? 分析SQL执行计划 ? ? ? ? 查看SQL执行计划有三种方式 : 设置set autotrace: 通过explain plan for 通过tkprof工具 34 ? Oracle Corporation 通过SQL TRACE分析SQL的执行 SQL_TRACE是Oracle提供的用于进行SQL跟踪的手段,是强有力 的辅助诊断工具.在日常的数据库问题诊断和解决中,SQL_TRACE 是非常常用的方法。 ? SQL_TRACE使用 SQL_TRACE可以作为初始化参数在全局启用,也可以通过命令行方式 在具体session启用。 ? 10046使用 10046事件是Oracle提供的内部事件,是对SQL_TRACE的增强. 10046事件可以设置以下四个级别: ? ? ? ? 1 - 启用标准的SQL_TRACE功能,等价于sql_trace 4 - Level 1 加上绑定值(bind values) 8 - Level 1 + 等待事件跟踪 12 - Level 1 + Level 4 + Level 8 ? 分析 分析sql在执行过程中发生的解析次数,逻辑读次数,变量绑定,所花时 间。改变SQL写法,变换查询条件等因素,再进行trace分析解析次数, 逻辑读次数,变量绑定等指标,最后判断最优化的SQL。 35 ? Oracle Corporation PL/SQL控制结构编码 PL/SQL提供了三种控制程序流程的语句: ? 条件控制语句 IF:使用ELSEIF 对相互排斥的条件进行 判断。 ? 循环语句 FOR 、 WHILE 、 LOOP:不使用EXIT和 RETURN语句退出循环,在一个LOOP循环中只能有一

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档