sql效能調優

2021-07-25 08:09:19 字數 1111 閱讀 8956

基本原則:

1.避免全表搜尋

2.建立索引

3.盡量避免向客戶端返回大量資料,若資料量大,考慮要求是否合理

4.盡量避免大事務操作,提高系統併發能力

5.盡量避免使用游標,因為效率差

關於where條件:

1.盡量避免在where條件使用!=或<>操作符,否則引擎將放棄使用索引而全表搜尋

2.盡量避免在where條件使用or,用union(並集)來代替

3.in和not in慎用,對於連續的值,用between代替in,exists代替in

4.盡量避免在where條件中對字段進行表示式操作和函式操作

關於資料型別:

1.盡量使用數字型字段,若只含數值型則不建議設定成字元型,降低查詢和連線的效能,並會增加儲存開銷

2.盡量使用    varchar或nvarchar代替char或nchar,提高搜尋效能

3.任何地方都不要使用  select a.* from a ,用具體的字段代替*

關於臨時表:

1.避免頻繁建立或刪除臨時表,減少系統資源消耗,對於一次性事件,最好使用匯出表

2.在新建臨時表時,如果一次性插入資料量很大,那麼可以使用 select into 代替 create table,避免造成大量 log ,以提高速度;如果資料量不大,為了緩和系統表 的資源,應先create table,然後insert。

3.如果使用到了臨時表,在最後將所有的臨時表顯式刪除時,先 truncate table ,然後 drop table ,這樣可以避免系統表的較長時間鎖定。

關於索引 :

1.先應考慮在 where 及 order by 涉及的列上建立索引。

2.在使用索引字段作為條件時,如果該索引是復合索引,那麼必須使用到該索引中的第乙個字段作為條件 時才能保證系統使用該索引, 否則該索引將不會 被使用, 並且應盡可能的讓字段順序與索引順序相一致。

3.索引並不是越多越好,索引固然可以提高相應的 select 的效率,但同時也降低了 insert和update 的效率,因為 insert 或 update 時有可能會重建索引,所以視具體            情況而定。乙個表的索引數最好不要超過7個,若太多則應考慮一些不常使用到的列上建的索引是否有必要.

SQL 語句效能調優

經常聽到有做應用的朋友抱怨資料庫的效能問題,比如非常低的併發,令人崩潰的響應時間,長時間的鎖等待,鎖公升級 甚至是死鎖,等等。在解決這些問題的過程中,dba 經常發現應用開發人員對資料庫的 誤用 包括 返回過多不必要的資料 不必要和不適當加鎖,對隔離級別的誤用和對儲存過程的誤用等等。但是,面對浩如煙...

sql的效能調優

週末火速趕到了客戶現場,週六開始幹活,查詢程式效能差的原因。經過分析,有一些還是我們需要注意總結的。如 com 元件的預設事務隔離級別,在大併發下面,是乙個很大的瓶頸。asp.net對於sp的呼叫,事務是否正常使用,也是乙個很大的瓶頸。但是對於pssdiag分析出來的結果,我還不知道應該怎麼用?只能...

SQL效能調優策略

1.建立索引 2.避免全表掃瞄 避免使用is null,is not null,這樣寫會放棄該字段的索引。如果會出現這種情況,盡量在設計表的時候設定預設值 比較操作符中 等避免使用,or 避免使用,可以使用union all進行替代 少用 in not int like萬用字元盡量將萬用字元放在後邊...