sql server查詢優化方法(海量資料)

2022-06-25 12:36:14 字數 1155 閱讀 4974

此方法只適用於對海量資料查詢的優化,對於資料量較少的查詢不具有參考性

一、盡量避免全表掃瞄,使用索引

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 from

b)//

轉化成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資源的一種相對穩定的測量方法,...