資料庫查詢語句優化方法

來源:果殼範文吧 1.32W

Select 語句是資料庫應用系統中最常用的語句之一,Select 語句設計的好壞直接影響到應用程式的工作效能。在設計Select語句時,應該注意以下幾種影響查詢效率的情況:

資料庫查詢語句優化方法

1、 沒有建立索引,或者沒有正確地使用索引。這是最有可能影響資料庫查詢的原因之一。建立索引是優化資料庫查詢效率的重要手段。

2、 存在死鎖的情況,從而導致Select語句掛起,無法返回結果集。

3、 返回不必要的列,很多程式設計師喜歡使用Select * from TableName 來查詢表可檢視中的資料,* 代表表或檢視中所有欄位,建議使用者在使用Select語句時,只返回必要的列。浪費更多的系統資源,從而影響查詢效率。

4、 在Select語句中使用Where字句,設定查詢條件,只返回必要的記錄。

5、 在Select語句中使用Top 關鍵字,限制返回的記錄數量。

6、 如果在Where字句中使用Like謂詞進行模糊查詢,則要注意萬用字元的使用方法。

7、 慎用Union關鍵字,因為它會影響查詢的效率。

8、 慎用Distinct關鍵字,因為在結果集中返回重複的記錄並不會影響查詢的效率。相反,過濾掉重複的記錄會浪費查詢的時間和系統資源。因此,除非必須如此,不要使用Distinct關鍵字。

9、 如果需要經常對錶中的資料進行統計,可以在表中增加一個統計欄位,每次表中資料發生變化時,動態更新統計欄位。這樣,在查詢統計結果時,就不需要臨時對錶中的'資料統計計算了。

10、如果需要多次對一個數據量非常大的表中的一部分數據進行查詢操作,可以將這部分資料儲存到臨時表中,然後對臨時表進行查詢操作。如果需要,可以在臨時表上建立索引。

11、 在Where字句中,有時使用Between關鍵字比使用In關鍵字要快,因為In關鍵字對其後面的集合中的每個元素進行比較操作。如果必須使用In關鍵字,則可將頻繁使用的值放在集合的前面,從而減少比較的次數。

12、儘量少使用檢視,特別是巢狀檢視,可以直接從表中獲取資料。在開發應用程式時,有時程式設計師為了方便,設計一個包含很多欄位的大檢視,無論需要什麼資料,都可以通過查詢此檢視獲取到。實際上,最好從表直接獲取資料,以避免查詢大檢視而造成的系統開銷。建議使用儲存過程代替檢視,從而提高執行的效率。

13、如果不需對結果集進行排序,則不要使用Order By字句,因為排序操作會佔用系統資源。

14、不要在Where字句中“=”的左側使用函式和表示式,因為系統將無法應用函式或表示式中的索引。

15、當判斷表中包含記錄時,使用Exists關鍵字,而不要使用Count統計表中所有的記錄數量。

你的資料庫應用系統違反幾條建議?歡迎提出更多優化建議!

熱門標籤