sql相关性能指南

 1.        不一样表的同一字段要有相同的类型,好比t_audit_report表的claim_idvarchar2类型,而t_claim表的该字段为number型,这样会致使2个表关联使用claim_id关联的时候,使用不了索引。ide

2.        尽可能使用UNION ALL,而不是UNION 函数

3.        避免写过于复杂的SQL,不必定要一个SQL解决问题,能够考虑使用多个小的SQL语句来实现一样的功能。 性能

4.        查询尽可能用肯定的列名,少用* spa

5.        in子句替换成exists子句 设计

6.        使用NOT EXISTS替代NOT IN orm

7.        外键须要加索引,不然删除父表的记录时会致使子表上的全表锁。 索引

8.        删除没必要要的索引 it

9.        添加冗余字段,减小大表的关联 ast

10.   避免在索引列上使用函数,若是没法避免,能够添加函数索引,在写SQL语句时,须要使用一致的函数。好比系统中对t_user表的字段account有的地方使用lower函数,有的地方却使用upper函数。 class

11.   若是明细查询语句很复杂,统计语句不要重用明细查询语句。由于统计语句不须要查询详细信息,能够去掉不少表的关联。

12.   以下状况下,Oracle不会使用索引,咱们应该避免

l  在索引列上使用前置通配符

l  在索引列上使用NOT

l  在索引列上使用IS NULLIS NOT NULL

l  索引列的类型自动转换

其余

1.        在写代码时,注重性能的同时不要忽略可读性.

2.        是否考虑过修改需求来提高性能?

3.        是否考虑过修改程序的设计来提升性能?

相关文章
相关标签/搜索