您的位置:首页 > 数据库

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. 是否考虑过修改程序的设计来提高性能?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  number