SQL优化个人总结
2012-06-19 16:57
337 查看
1. 避免复杂的多表关联
2. 避免使用select *
3. 避免使用耗费资源的操作:带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL
可以:
用EXISTS替换DISTINCT
用UNION-ALL
替换UNION ( if possible)
4. 如果索引是建立在多个列上,
只有在它的第一个列(leading
column)被where子句引用时,优化器才会选择使用该索引.
5. 避免在索引列上使用函数,SAL> 25000/12优于SAL * 12 > 25000
6. 避免使用前置通配符.如LIKE '%109204421';
7. 避免在索引列上使用NOT.如DEPT_CODE > 0优于DEPT_CODE NOT = 0
8. 在索引列上使用 IS NULL和IS NOT NULL是不允许使用索引的。
9. 避免出现索引列自动转换. 如 TO_NUMBER(USER_NO) = 109204421
10. WHERE子句中的连接顺序.
ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,
当在WHERE子句中有多个表联接时,WHERE子句中排
在最后的表应当是返回行数可能最少的表,有过滤条件的子句应放在WHERE子句中的最后。
11. 任何在Order by语句的非索引项或者有计算表达式都将降低查询速度。解决这个问题的办法就是重写order by语句以使用索引,也可以为所使用的列建立
另外一个索引,同时应绝对避免在order by子句中使用表达式。
12. 避免使用HAVING子句, HAVING
只会在检索出所有记录之后才对结果集进行过滤.
这个处理需要排序,总计等操作.
如果能通过WHERE子句限
制记录的数目,那就能减少这方面的开销.
13. 用NOT EXISTS
替代 NOT IN
14. 用>= 替代
>
15. 通过使用>=、<=等,避免使用NOT命令. 如
salary<3000 or salary>3000优于salary <> 3000
16.
尽量多使用COMMIT.事务是消耗资源的,大事务还容易引起死锁
17. 用TRUNCATE替代DELETE
2. 避免使用select *
3. 避免使用耗费资源的操作:带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL
可以:
用EXISTS替换DISTINCT
用UNION-ALL
替换UNION ( if possible)
4. 如果索引是建立在多个列上,
只有在它的第一个列(leading
column)被where子句引用时,优化器才会选择使用该索引.
5. 避免在索引列上使用函数,SAL> 25000/12优于SAL * 12 > 25000
6. 避免使用前置通配符.如LIKE '%109204421';
7. 避免在索引列上使用NOT.如DEPT_CODE > 0优于DEPT_CODE NOT = 0
8. 在索引列上使用 IS NULL和IS NOT NULL是不允许使用索引的。
9. 避免出现索引列自动转换. 如 TO_NUMBER(USER_NO) = 109204421
10. WHERE子句中的连接顺序.
ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,
当在WHERE子句中有多个表联接时,WHERE子句中排
在最后的表应当是返回行数可能最少的表,有过滤条件的子句应放在WHERE子句中的最后。
11. 任何在Order by语句的非索引项或者有计算表达式都将降低查询速度。解决这个问题的办法就是重写order by语句以使用索引,也可以为所使用的列建立
另外一个索引,同时应绝对避免在order by子句中使用表达式。
12. 避免使用HAVING子句, HAVING
只会在检索出所有记录之后才对结果集进行过滤.
这个处理需要排序,总计等操作.
如果能通过WHERE子句限
制记录的数目,那就能减少这方面的开销.
13. 用NOT EXISTS
替代 NOT IN
14. 用>= 替代
>
15. 通过使用>=、<=等,避免使用NOT命令. 如
salary<3000 or salary>3000优于salary <> 3000
16.
尽量多使用COMMIT.事务是消耗资源的,大事务还容易引起死锁
17. 用TRUNCATE替代DELETE
相关文章推荐
- SQL系列 - SQL语句优化个人总结
- 优化SQL查询(个人工作经验总结)
- SQL系列 - SQL语句优化个人总结
- 浅谈个人SQL语句优化经验总结
- SQL优化查询建议(个人总结 仅供参考)
- SQL优化查询建议(个人总结 仅供参考)
- sql优化个人总结
- Oracle SQL优化 总结
- 数据库SQL优化大总结之 百万级数据库优化方案
- SQL 优化总结(二) 索引
- paip.提升性能----SQL优化总结
- Oracle SQL优化 总结
- orcal 数据库 sql语句优化总结
- 数据库SQL优化大总结之 百万级数据库优化方案
- SQL 性能优化 总结
- 前端性能优化——个人搜集总结
- sql优化总结 / sql中decode(...)函数的用法
- 数据库SQL优化大总结之 百万级数据库优化方案
- 数据库SQL优化大总结之百万级数据库优化方案
- oracle数据库sql的优化总结