Oracle提高sql执行效率的心得建议

 更新时间:2013年08月08日 16:53:43   作者:  
sql执行效率一直都是为人所关注,那到底应该怎样提高呢?有什么比较好的方法,下面与大家分享下比较不错的建议,感兴趣的朋友可以参考下,希望对大家有所帮助

复制代码 代码如下:

-->FROM子句中包含多个表的情况下,选择记录条数最少的表作为基础表

-->解析WHERE子句是自下而上的 过滤条件要有顺序

-->ORACLE会将'*'转换成列名

-->DELETE会在rollback segment中存放可恢复信息,可以试试TRUNCATE

-->COMMIT会释放:1.rollback segment
2.被程序语句获得的锁
3.redo log buffer

-->把Alias前缀于每个Column上可以减少解析的时间

-->ORACLE解析sql语句时会把小写的字母转换成大写的再执行

-->在索引列上使用NOT会停止使用索引转而执行全表扫描

-->在索引列上进行运算会停止使用索引转而执行全表扫描

-->使用'>=',而不是'>'

-->where子句中'!='、'||'、'+'等符号会破坏索引

-->IN的效率很低,IN子句将执行一个内部的排序和合并

-->EXIST查询更为迅速

-->对于两个索引列,UNION比OR效率更高

-->IS NULL会破坏索引

-->DISTINCT,UNION,MINUS,INTERSECT,ORDER BY等都带有SORT功能,会耗费资源

-->多个索引列时尽量使用第一个索引列

-->尽量用 UNION ALL代替UNION

-->不要用TO_NUMBER()之类的函数改变索引列的类型。

-->对于字符类型的索引列尽量写成:col = '123' 而不是 col = 123,后者会被解析为TO_NUMBER(EMP_TYPE)=123

-->适当的地方使用适当的关键字:HAVING会在检索出所有记录之后对结果集进行过滤 能使用WHERE解决时不要用HAVING

-->索引也需要维护,INSERT,DELETE,UPDATE会因索引而做出更多次I/O

-->重构索引是必要的:ALTER INDEX <INDEXNAME> REBUILD <TABLESPACENAME> [ONLINE]

相关文章

  • oracle查看执行最慢与查询次数最多的sql语句

    oracle查看执行最慢与查询次数最多的sql语句

    这篇文章主要给大家介绍了oracle查看执行最慢与查询次数最多的sql语句,文中给出完整的示例代码,相信对大家的学习或者工作具有一定的参考价值,有需要的朋友们下面来一起看看吧。
    2017-01-01
  • win10系统安装oracle11g时遇到INS-13001环境不满足最低要求解决办法

    win10系统安装oracle11g时遇到INS-13001环境不满足最低要求解决办法

    这篇文章主要介绍了win10系统安装oracle11g时遇到INS-13001环境不满足最低要求解决办法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-09-09
  • oracle 如何关闭打开归档日志

    oracle 如何关闭打开归档日志

    本文将介绍oracle 归档日志的关闭打开方法,需要了解的朋友可以参考下
    2012-11-11
  • 大表delete删数据导致数据库异常解决

    大表delete删数据导致数据库异常解决

    这篇文章主要为大家介绍了大表delete删数据导致数据库异常解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • Oracle对PL/SQL中的异常处理

    Oracle对PL/SQL中的异常处理

    这篇文章介绍了Oracle对PL/SQL中异常处理的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Oracle Form中COMMIT的概述及使用技巧

    Oracle Form中COMMIT的概述及使用技巧

    针对form上面的数据变动提交到后台数据库,同时数据库提交数据,接下来将详细介绍下Form中COMMIT的使用,感兴趣的你可以参考下本文
    2013-03-03
  • Oracle递归查询start with connect by prior的用法

    Oracle递归查询start with connect by prior的用法

    这篇文章主要给大家介绍了关于Oracle递归查询start with connect by prior、的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • Oracle查询执行计划

    Oracle查询执行计划

    执行计划(Execution Plan)也叫查询计划(Query Plan),它是数据库执行SQL语句的具体步骤和过程。本文主要介绍了Oracle查询执行计划方法,感兴趣的同学可以参考阅读
    2023-04-04
  • oracle索引的测试实例代码

    oracle索引的测试实例代码

    这篇文章主要给大家介绍了关于oracle索引测试的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 一文教会你配置使用Navicat或PLSQL可视化工具远程连接Oracle

    一文教会你配置使用Navicat或PLSQL可视化工具远程连接Oracle

    Navicat是一款数据库管理工具,是一个可多重连线资料库的管理工具,下面这篇文章主要给大家介绍了关于配置使用Navicat或PLSQL可视化工具远程连接Oracle的相关资料,需要的朋友可以参考下
    2023-04-04

最新评论