此方法只適用於對海量資料查詢的優化,對於資料量較少的查詢不具有參考性
一、盡量避免全表掃瞄,使用索引
1.在常用字段上面建立索引,方便查詢
2.避免null值判斷。eg: where xx is null。 改進:可以設定預設值代替null
3.避免使用不等於操作符,如!=,<>
4.避免使用or。 可以使用union all代替。 eg: where age=1 or age=2 改成 ... where age=1 union all .... where age=2
5.避免使用 in/not in
6.避免左模糊查詢 eg: like '%傑'
7.where 字句中避免使用引數。如果使用引數又想使用索引:
select*from t with(index(索引名)) where num=
@num
8.避免使用表示式 eg: where num/2=100
9.避免對欄位進行函式操作,比如substring,convert
10.避免在等號左側進行函式、表示式操作
11.用exists代替in
select num from a where num in(select num fromb)//
轉化成select num from a where
exists(select
1from b where num=a.num)
12.索引具備的條件:1.常用 2.不存在大量資料重複 3.建立索引不宜過多
13.索引會降低insert/update效率
14.對於數字型別的字段盡量使用數字型別,不使用字串型別
15.盡量使用varchar/nvarchar 代替char/nchar。因為變長字段儲存空間小,易查詢
16.避免使用 * ,使用字段代替
二、關於臨時表
1.避免頻繁操作臨時表
2.一次性插入資料較大,可以使用select into代替create table
3.使用了臨時表之後,必須在最後將所有臨時表顯示刪除,可以使用truncate table,再使用 drop table
4.避免使用游標操作大資料量(一萬條以上)
5.避免向客戶端返回大資料量
sql server查詢優化
0 在可以使用and的情況下,盡量不要使用between。1 在可以使用and的情況下,盡量不要使用or。or需要check所有列出的情況。2 在可以使用exists的情況下,避免使用in。exists走index,in不走索引。3 where條件中,如果使用了索引列,盡量不要對該列使用函式,會破壞...
sql server 資料查詢優化
前幾周做專案遇到問題與大家分享 因讀取資料關聯n個表,我大部份都採用子查詢 in 當時資料量在10000記錄級內,而且在本地伺服器執行速度都比較快。當再一次匯入幾w條記錄後多表關聯 in 就宕機。然後瘋狂網上搜解決方案。查詢速度慢的原因很多,常見如下幾種 1 沒有索引或者沒有用到索引 2 i o吞吐...
SqlServer查詢優化檢視引數
sqlserver查詢優化檢視引數 1.set ststistics time on 結果cpu time elapsed time,即cpu時間 占用時間。解釋 表示執行這次查詢使用了多少cpu執行時間和執行查詢使用了多少時間。cpu執行時間是對執行查詢所需要的cpu資源的一種相對穩定的測量方法,...