SQL的优化方法(oracle)
2009-11-08 11:34
225 查看
1. (对于表来说) 对于一个用于增删查改的表,建立的索引最好不要超过 5 个。对于单纯用来查询的表,建立的索引数可以适当多一点。
2. (对于记录来说) 对于一个表,查询的记录数是总记录的 3% ,或小于此数,使用索引比较好。若大于 5% ,则要考虑是否要采用索引。
3. (对于字段来说)可建立索引的情况:
对于常出现于 where 子句的字段。
对于表与表之间用来连接的字段。
4. in / not in (results) :当结果集比较大时, in / not in 的使用效率会比较低。可以采用 exist / not exist 。当当结果集比较小时,则无影响。
5. 效率对比:
Select * from tableA a ,(select * from tableC) b where a.id=b;(A)
Select * from tableA a , where a.id in (select * from tableC); ( B )
A 的效率会比较高。把查询子集生成一个动态表集。
6. select * from tableA,TABLEB,tableC :提高效率的做法:是把大结果集的表放于前面,小表放最后。
7. 在 oracle 中,可以用 Explan plan 来查看 SQL 的执行效率。
2. (对于记录来说) 对于一个表,查询的记录数是总记录的 3% ,或小于此数,使用索引比较好。若大于 5% ,则要考虑是否要采用索引。
3. (对于字段来说)可建立索引的情况:
对于常出现于 where 子句的字段。
对于表与表之间用来连接的字段。
4. in / not in (results) :当结果集比较大时, in / not in 的使用效率会比较低。可以采用 exist / not exist 。当当结果集比较小时,则无影响。
5. 效率对比:
Select * from tableA a ,(select * from tableC) b where a.id=b;(A)
Select * from tableA a , where a.id in (select * from tableC); ( B )
A 的效率会比较高。把查询子集生成一个动态表集。
6. select * from tableA,TABLEB,tableC :提高效率的做法:是把大结果集的表放于前面,小表放最后。
7. 在 oracle 中,可以用 Explan plan 来查看 SQL 的执行效率。
相关文章推荐
- 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(2)
- 使用hint优化 Oracle SQL语句方法
- 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(1)
- 使用hint优化 Oracle SQL语句方法30例
- Oracle SQL语句之常见优化方法总结
- Oracle 数据库SQL语句优化方法
- 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(5)
- 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(7)
- ORACLE SQL 优化的若干方法
- [Oracle] Sql 优化系列--查看Oracle执行计划的方法
- [ORACLE] SQL语句的优化方法
- oracle sql的优化方法(概述)
- ORACLE中 大数据表的交叉数据集的查询 SQL优化方法
- Oracle之SQL语句性能优化(34条优化方法)
- 在oracleSQL优化的最简单的方法
- oracle sql的优化方法概述
- Oracle SQL查询优化方法
- Oracle SQL查询优化方法2
- oracle sql 优化 方法 使用
- Oracle之SQL优化专题01-查看SQL执行计划的方法