影響查詢效率的select語句


1、沒有創建索引,或者沒有正確使用索引;
2、存在死鎖的情況,從而導致select語句掛起;
3、盡量使用select 字段,而不要使用select * from 這樣會查詢表或視圖中的所有字段,如果表或視圖的數量比較大時候,就會浪費系統資源,應該只要返回必要的列 ;
4、在select語句中使用where子句,最好限制返回的記錄數 ;
5、使用TOP關鍵字,最好限制返回的記錄數 ;
6、在使用like關鍵字的時候需要注意通配符的使用方法 ;
7、慎用union關鍵字,因為它會影響到查詢的效率 ;
8、慎用Distinct關鍵字,因為在結果集中的重復記錄並不會影響到查詢的效率,相反則需要消耗相應的資源去過濾重復記錄,除非必須如此,不要使用此關鍵字 ;
9、如果需要經常對表中的數據進行統計,可以在表中增加一個統計字段,每次表中的數據發生變化的時候,動態更新統計字段。這樣,在查詢統計結果時,就不需要臨時對表中的數據進行統計計算了 ;
10、如果需要多次對一個數據量非常大的表中的一部分數據進行查詢操作,可以將這部分數據保存到臨時表中,然后對臨時表進行查詢操作,並且可以根據需要在臨時表中增加索引 ;
11、在where子句中使用BETWEEN關鍵字比IN要快,因為IN關鍵字對其后面的集合中的每一個元素都進行比較,如果必須使用IN關鍵字,則可以將頻繁使用的值放在集合的前面,從而減少比較的次數 ;
12、盡量少使用視圖,特別是嵌套視圖,可以直接從表中獲取數據。在開發中,有人為了方便,設計一個包含很多字段的大視圖,這樣無論查詢什么字段都從此視圖中取。實際上,最好從表中直接獲取數據,一面查詢大視圖而造成的系統的開銷。建議用存儲過程取代視圖,從而提高執行效率 ;
13、如果不要排序,盡量不要使用order by語句,這也會增加開銷 ;
14、不要在where語句中=的左側使用函數或者表達式,英文系統將無法應用函數或表達式中的索引 ;
15、當判斷表中是否包含記錄時,使用EXISTS關鍵字,而不要使用count統計表中所有的記錄數數量 。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com