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.        是否考慮過修改程序的設計來提升性能?

相關文章
相關標籤/搜索