SQL SERVER中 效能問題

2021-08-07 22:54:36 字數 1268 閱讀 8034

1.對查詢進行優化,應盡量避免全表掃瞄,考慮在 where 及 order by 涉及的列上建立索引。 

2.避免使用 left join 和 null 值判斷。left join 比 inner join 消耗更多的資源。

3.避免在 where 子句中使用!=或<>操作符,否則引擎可能放棄使用索引而進行全表掃瞄。

4.避免在 where 子句中使用 or 來連線條件,否則將可能導致引擎放棄使用索引而進行全表掃瞄。

5.in 和 not in 也要慎用,連續的數值能用 between 就不要用 in。

6.下面的查詢也將導致全表掃瞄:

select id from t where name like '%abc%'

7.如果在 where 子句中使用引數,也會導致全表掃瞄。

8.避免在 where 子句中對字段進行表示式操作,這將導致引擎放棄使用索引而進行全表掃瞄。

select id from t where num/2=100

應改為:  

select id from t where num=100*2

9.應盡量避免在where子句中對字段進行函式操作,這將導致引擎放棄使用索引而進行全表掃瞄。

select id from t where substring(name,1,3)='abc'

10.不要在 where 子句中的「=」左邊進行函式、算術運算或其他表示式運算,否則系統將可能無法正確使用索引。

11.很多時候用 exists 代替 in 是乙個好的選擇:

select num from a where num in(select num from b)

用下面的語句替換:

select num from a where exists(select 1 from b where num=a.num)

12.盡量使用數字型字段,若只含數值資訊的字段盡量不要設計為字元型,這會降低查詢和連線的效能,並會增加儲存開銷。

13.盡可能的使用 varchar/nvarchar 代替 char/nchar ,因為首先變長字段儲存空間小,可以節省儲存空間

14.任何地方都不要使用 select * from t ,用具體的字段列表代替   *

15.在新建臨時表時,如果一次性插入資料量很大,那麼可以使用 select ...   into ... from ...  代替 create table,避免造成大量 log ,以提高速度。

16.在所有的儲存過程和觸發器的開始處設定 set nocount on ,在結束時設定 set nocount off 。

Android中效能優化

由於手機硬體的限制,記憶體和cpu都無法像pc一樣具有超大的記憶體,android手機上,過多的使用記憶體,會容易導致oom,過多的使用cpu資源,會導致手機卡頓,甚至導致anr。我主要是從一下幾部分進行優化 布局優化,繪製優化,記憶體洩漏優化,響應速度優化,listview優化,bitmap優化,...

分類問題中效能評價指標

分類問題中會出現多種演算法,那麼自己如何知道演算法效能的優劣呢,這就需要評價演算法效能好壞的指標,這裡介紹幾個常用的指標.1.準確率 評價分類問題的效能的指標一般是分類準確率,其定義是對於給定的資料,分類正確的樣本數佔總樣本數的比例。accuracy 正確的樣本數 所有樣本數。但是這一指標在不均衡的...

web效能測試中效能指標

web效能測試的部分概念一般來說,乙個web請求的處理包括以下步驟 1 客戶傳送請求 2 web server接受到請求,進行處理 3 web server向db獲取資料 4 web server生成使用者請求的object 頁面 返回給使用者。從客戶傳送請求開始到客戶接收到最後乙個位元組的時間成為...