程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 促進最佳SQL的一些提示

促進最佳SQL的一些提示

編輯:關於SqlServer

1.在從I/O的觀點來看使用索引沒有意義時鼓勵進行全表掃描。
2.如果SQL包含了子查詢,則優化它們。
3.在SQL 語句的where子句的條件中使用not exists來代替not in。
4.使用有前導字段的like運算來代替substr函數。
5.可在適當的地方使用nvl函數。
6.對於帶有許多OR條件的非常復雜的查詢來說,可以考慮用union all重寫。
7.使用合適的索引。
8.如果查詢總是去檢索基於主從表關系的行,則應建立外鍵列的索引。
9.使用組合索引(有兩個或多個列的索引)。
10.考慮使用非唯一索引來支持唯一性約束。
11.當允許使用約束時,考慮使用enable novalidate子句。
12.當where子句的條件中包含低數據基數的列,包含關於這些列的像or、and或not這樣的邏輯運算,或者從有大量行的表中返回大量的行時,應考慮位圖索引。
13.考慮單表散列或索引簇(有賴於應用程序)。
14.要了解帶有視圖的SQL語句。
15.盡可能避免遠程訪問。
16.主動地確定嵌套循環、合並連接或散列連接。
17.在可能的情況下確定並使用數組處理和批處理。
18.如果應用程序包含了許多動態SQL的發生,則考慮使用execute immediate,它的運行比DBMS_SQL更好。
19.對於非常大的表,考慮利用表和索引的分區。
20.如果仍然使用基於規則的優化程序,則構造from子句使得最小的表成為在表的列表中定義的最後一個表。
21.如果需要減少索引建立所花費的時間,可以在會話級將sort_area_size參數更改為一個大值,使得該索引建立的大多數排序在內存中發生。
22.需要不斷的測試所有的查詢。



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved