sql相关性能指南
2012-07-20 10:54
218 查看
1. 不同表的同一字段要有相同的类型,比如t_audit_report表的claim_id为varchar2类型,而t_claim表的该字段为number型,这样会导致2个表关联使用claim_id关联的时候,使用不了索引。
2. 尽量使用UNION ALL,而不是UNION
3. 避免写过于复杂的SQL,不一定要一个SQL解决问题,可以考虑使用多个小的SQL语句来实现同样的功能。
4. 查询尽量用确定的列名,少用*
5. 将in子句替换成exists子句
6. 使用NOT EXISTS替代NOT IN
7. 外键需要加索引,否则删除父表的记录时会导致子表上的全表锁。
8. 删除不必要的索引
9. 添加冗余字段,减少大表的关联
10. 避免在索引列上使用函数,如果无法避免,可以添加函数索引,在写SQL语句时,需要使用一致的函数。比如系统中对t_user表的字段account有的地方使用lower函数,有的地方却使用upper函数。
11. 如果明细查询语句很复杂,统计语句不要重用明细查询语句。因为统计语句不需要查询详细信息,可以去掉很多表的关联。
12. 如下情况下,Oracle不会使用索引,我们应该避免
l 在索引列上使用前置通配符
l 在索引列上使用NOT
l 在索引列上使用IS NULL和IS NOT NULL
l 索引列的类型自动转换
其他
1. 在写代码时,注重性能的同时不要忽略可读性.
2. 是否考虑过修改需求来提升性能?
3. 是否考虑过修改程序的设计来提高性能?
2. 尽量使用UNION ALL,而不是UNION
3. 避免写过于复杂的SQL,不一定要一个SQL解决问题,可以考虑使用多个小的SQL语句来实现同样的功能。
4. 查询尽量用确定的列名,少用*
5. 将in子句替换成exists子句
6. 使用NOT EXISTS替代NOT IN
7. 外键需要加索引,否则删除父表的记录时会导致子表上的全表锁。
8. 删除不必要的索引
9. 添加冗余字段,减少大表的关联
10. 避免在索引列上使用函数,如果无法避免,可以添加函数索引,在写SQL语句时,需要使用一致的函数。比如系统中对t_user表的字段account有的地方使用lower函数,有的地方却使用upper函数。
11. 如果明细查询语句很复杂,统计语句不要重用明细查询语句。因为统计语句不需要查询详细信息,可以去掉很多表的关联。
12. 如下情况下,Oracle不会使用索引,我们应该避免
l 在索引列上使用前置通配符
l 在索引列上使用NOT
l 在索引列上使用IS NULL和IS NOT NULL
l 索引列的类型自动转换
其他
1. 在写代码时,注重性能的同时不要忽略可读性.
2. 是否考虑过修改需求来提升性能?
3. 是否考虑过修改程序的设计来提高性能?
相关文章推荐
- SparkSQL性能分析与优化及相关工具小结
- Sql Server CPU 性能排查及优化的相关 Sql
- Oracle 性能相关常用脚本(SQL)
- 与SQL相关的动态性能视图
- Sql Server CPU 性能排查及优化的相关 Sql 语句
- DB2 SQL性能优化相关的10大要素
- Oracle 性能相关常用脚本(SQL)
- Oracle 性能相关常用脚本(SQL)
- 用sql语句查出和sql相关的性能计数器
- Oracle 性能相关常用脚本(SQL)
- Oracle 性能相关常用脚本(SQL)
- Oracle 性能相关常用脚本(SQL)
- Sql Server CPU 性能排查及优化的相关 Sql
- SQL优化:设置性能相关的服务器参数
- sql性能相关语句
- Sql Server CPU 性能排查及优化的相关 Sql
- SQL应用中级指南 Part3:(SQL的流化、高效、数据库性能的提高与调整)
- sql*plus命令相关
- SQL语句练习实例之十——SQL SERVER 行转列的性能测试
- 测试发现数据库性能问题后的SQL调优