oracle的sql也是遵循几点原则 1.能用oracle自带函数,或者用他的函数可以实现的效果,尽量用oracle的函数,因为他的函数的算法和实现函数的语言都是效率非常高的,一般情况下比我们写的要高效。 2. sql的关键字都大写,因为oracle 再执行sql时,会把所有的sql 转换为大写来执行 3.select 句子中最好不要出现* ,要写具体的列名,不然 oracle会一次解析每个字段,费时。 4.from 的表,如果是一张或者两张表,把条数最少的放在后面,如果是三张以上,把和其他有交叉的表的放在后面,所谓交叉,就是和其他表有关联的的意思,因为oracle的扫描是从下网上从右往左,这样 的结果是可以尽量的少扫描表, 5.where 把可以过滤掉多条数据的条件往后放,一次类推 6.删除重复记录的最好办法是用rowid 7.使用decode函数减少 处理时间 8.用truncate table表明 代替delete from表名,因为第一个会删除表所对应的表空间 9.用where过滤,少用having过滤 10.使用表的别名也可以提高效率 11.用?EXISTS?替代?IN?、用?NOT EXISTS?替代?NOT IN?: 12.使用索引来提高查询效率,但是索引建立的时候很有将就,并不是每个字段都建立,那样反而会降低效率 13.用?EXISTS?替换?DISTINCT 14.避免在索引上使用计算那些函数 15.用>= 来代替> ,因为有个确切的边线,可以让oracle跟好的确定边线 16.避免在索引列上用not ,因为这回让索引失效,也要避免使用is null ,is not null 操作 17.用union来代替 or 操作,如果可以的话 18.用in 代替or ,如果可以的话 19.用union all 代替 union ,如果可以的话 ,因为union 要去除重复的列,还要排序,费时 20.where句子中把过滤掉数据最的条件放在最后,一次往前罗列,因为oracle的检索顺序是从下网上,从右往左, 21. 对于以上的操作都没什么 疑问的话,那就要借助plsql 这样的开发工具,去查看我们 写的sql 的解释执行计划,这个才是最后敲定你的sql 效率的依据, 22.在oracle上 尽量不要使用hints提示,因为我们的表 始终在变,可能目前你的效果很有效,但是随着每个表的数据的变化,并不保证你的sql 始终都是高效的
详细解决方案
oracle sql优化轨范
热度:131 发布时间:2016-05-05 15:19:39.0
相关解决方案
- 求教,SSH + ORACLE 日期处理有关问题
- hibernate 连接 oracle session 有关问题
- eclipse+tomcat6.0+oracle 10g配置数据库连接池的异常
- java 生成 word 封存到 oracle 数据库
- oracle 最大连市接数 为什么main方法无限拿连接
- oracle 分页排序,ssi,该怎么处理
- oracle 最近的时间(而不是前一天的时间) 跪求sql语句 。解决方法
- java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:192.168解决思路
- java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver,该怎么处理
- Jsp + Oracle 怎么取回id,报错getInt not implemented for class oracle.jdbc.driver.T4CRo
- oracle 调用java程序,该如何处理
- oracle,该怎么解决
- 在 Hibernate3 查询不到 Oracle 11g 里的记录
- Oracle 评论排序!该怎么解决
- oracle 安装时出现 java tm 异常
- android访问其他数据库(如:oracle、MySql等),希望大家给点建议!解决方案
- oracle sql 有关问题
- oracle 安插 LONG VARCHAR 类型数据
- jdbc+oracle 11中文乱码(英文一般)-在线盼
- ORACLE 一条SQL的有关问题
- oracle loadjava如何用
- netbeans desktop Application 连 Oracle 数据库的有关问题
- Oracle 每天数据备份
- oracle,该如何处理
- C# + SQL server +oracle QQ交流群142703980解决方法
- 求 dotConnect for Oracle 控件破解解决方法
- grove 怎么连 oracle 数据库
- 怎么跟踪winform应用程序发送到数据库的sql(oracle、mssql)
- 小弟我在windows 2008 r2下,使用OleDB方式访问oracle时,提示:未在本地计算机下注册“OraOleDB.Oracle”提供程序
- , 每次玩ASP都会遇到一些恶心的有关问题, 这次是:未能加载文件或程序集“Oracle.DataAccess”或它的某一个依赖项