SQL效能學習彙總 00

2022-07-17 06:03:12 字數 2005 閱讀 7416

1

1.在一條語句中不要重複使用相同的函式22

.盡可能在儲存過程中使用臨時變數和臨時表

3 如 if (object_id('

tempdb..#t

') is

notnull) drop

table#t4

select … into #t from…5

drop

table

#t ;63

.當用select into時,它會鎖住系統表(sysobjects,sysindexes等等),

7阻礙其他連線的訪問。所以在建立臨時表時應該用顯示申明語句,

8即不在事務內使用select into語句。

9select

into

#t .......

10begin

tran

11update

#t .......

12end

tran134

.儲存過程中涉及更改資料時一定要使用try catch 事務 回滾等

145.select子句中避免使用'*'

盡可能的寫出需要查詢的欄位名156

.條件中盡量少用否定型別的運算子,條件中盡量少用16'

<>

', '

!=''

not in

', '

not exists

','not like

'等否定型別的運算子,

17 因為它們不走索引全是表掃瞄 效率高低比較exists >

in>

notexists

>

notin

,18 所以可用exists代替in的使用, not exists或(outer

join

)代替not in的使用。197

.在where條件中in後的值排序為先繁後少,減少判斷次數

208.避免在索引列上使用is null 和 is

notnull

。null條件將使該索引無法作用。219

.盡可能不在條件中使用函式

2210.用'

>=

','<=

'替代'

>

','<'23

示例(不推薦)

24select

empno

25from

emp

26where deptno >3;

27示例(推薦)

28select

empno

29from

emp

30where deptno >=

4;

31兩者區別在於,前者dbms將直接跳到dept等於4的記錄而後者將首先定位

32 到deptno =

3的記錄再向前掃瞄到第乙個dept大於3的記錄

3311

.union代替or的使用

3412.top

+ 數值 替代 top

+百分比 的使用

3513

.盡量使用精準查詢

36 在like語句中,若能確定使用like'

a%'則不用like'

%a'或like'

%a%'

37因為前者能用上索引,而後兩者則不能。

38 且like'

%a%'

查詢時的耗時和字段值總長度成正比,

39所以用varchar比用char型別較高效。

40如果能精準查詢則堅決不能採用模糊查詢。

4114

.條件允許時union all替代union的使用

4215.沒有必要時不用distinct和order by

43distinct和order by這些動作可以改在客戶端執行。

44它們增加了額外的開銷。這同union和union all一樣的道理

4516.使用批處理更新語句,一次更新多條記錄比分多次更新而每次更新一條語句快。

00 SQL課程簡介

sql專案 sql sql初級 sql高階 sql專案 我們來看看wiki對sql的定義 sql就是structure query language的縮寫,是用來查詢和操作的資料的一種語言 課程中的定義式 a language used to interact with a database 看起來...

BGL學習00 開始

這篇blog是我學習 boost之bgl的開始。bgl是boost graph library的縮寫,是基於boost的乙個強大的圖論函式庫。其採用了c 泛型程式設計 generic programming 的思想,因而有強大的通用性 擴充套件性和高效率。從今天開始我將系統地學習這個庫,基本想法是逐...

創新班學習00

1.自己學。勿相互問,學習方法。通過網路學習。怎麼問問題。如何使用搜尋引擎。google。一兩天!周解決問題。2 期望得到的 a 學習能力。解決問題。語言,幾個小時,不超過三天。b.如何保證工作質量。不出錯誤。c目前軟體行業前沿語言,技術,設計。比如。13年使用golang語言,08年使用andro...