SQL 最佳化手冊

mcxiaoracle發表於2023-10-16

規範sql編寫:在做效能測試的時候:簡單層面的方法的下的方法:

1.SQL語句使用大寫的,減少編譯時間

2.查詢時候使用表的別名,減少編譯時間以及拼接表中列歧義引起的錯誤

3.表名順序,sql自右往左處理from後的表名,資料量大的表放在後邊,多個表的情況下使用資料量少的表作為基礎表,3個表的話用交叉表作為基礎表

4.where子句中的連線順序:sql子下往上處理where子句,將能過濾多數資料的條件放到末尾。

5.select 中避免使用*,減少編譯時間

6.資料處理儘量放在伺服器上執行,建立編譯好的儲存過程

7.多使用commit提交,不要執行了很多處理語句後再提交

8.儘量減少對錶的查詢,select中不查表,where後不查表

9.避免耗費資源高的操作:distinct,union,minus(差集),intersect(交集),order by

10.union all 不會對結果集排序,可以使用。

11.exists替換distinct,exists子查詢滿足條件會立刻返回結果。

select a.name from users a where exists (select 1 from users b where a.name=b.name);

12.where子句替換having,一般我都不用having,很少接觸到,也不瞭解。

13.truncate代替delete清空表。

14.decode函式可以減少處理時間。

15.用exists代替in,not exists代替not in

in 跟exists執行效率會有交集, 

16.全數字的欄位儘量不建成字元型   

17.varchar/nvarchar 比char/nchar效率高

18.表連線不應太多,5個以內最好

19.避免使用多層巢狀檢視

20.in中出現多的放在前邊,減少遍歷次數

21.儘量使用>=,少使用>

22.批次新增資料,使用批次新增語句

23.儘量少使用觸發器

24.合理使用索引,對於資料操作頻繁的儘量不要使用索引,影響操作效率。




參考資料:

https://www.cnblogs.com/nydk/p/13995215.html





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69949806/viewspace-2989225/,如需轉載,請註明出處,否則將追究法律責任。

相關文章