琪琪女色窝窝777777,蜜臀亚洲AV永久无码精品老司机 ,东京道一本热中文字幕,天天摸日日添狠狠添婷婷

mssql性能優(yōu)化的七點(diǎn)認(rèn)識(shí)


1.盡量少使用外鍵和觸發(fā)器

因?yàn)樵?strong>mssql中這些功能的性能做得不是很好;隨便動(dòng)一下表,在后臺(tái)消耗資源大.寧可在前臺(tái)多寫些相關(guān)表的操作的代碼.

2.創(chuàng)建索引

a.聚集索引:聚集索引是磁盤存儲(chǔ)和邏輯顯示是一樣的,mssql表的主鍵一般是聚集索引。

b.非聚集索引:非聚集索引是在外面建立小的附加表(一種樹形結(jié)構(gòu);大多數(shù)是B或B+樹);不要給類似性別列創(chuàng)建索引.

3.死鎖

是指有線程在讀一條記錄;別的線程讀這條記錄就要等待,在mssql中只要長期占那條記錄的線程去掉,死鎖就會(huì)解除。經(jīng)常產(chǎn)生鎖的原因有:a.在sql語句中使用事務(wù)語句。b.在前臺(tái)的應(yīng)用程序的connetion沖突。c.多表聯(lián)合查詢。

mssql性能優(yōu)化的七點(diǎn)認(rèn)識(shí)

4.sql語句優(yōu)化

a."is null" "not" "or" "in"不會(huì)用索引

b.避免在索引列上使用計(jì)算或函數(shù)處理(索引會(huì)大失性能).還有"%";有的甚至?xí)饕阅?/p>

c.SELECT中避免使用 * (寧可把需要字段列出來;而不要用*去把所有的字段都列出來).

d.避免相關(guān)子查詢(select中套select).

e.where的條件中"=>exists>in"(指性能)

f."order by" "group by" "having" "distinct"等語句要慎用(因?yàn)樗鼈冃什桓?它們是先把數(shù)據(jù)到臨時(shí)表中再進(jìn)行處理的).

g.聚集索引如有2個(gè)字段組成(tt1和tt2);tt1在前面;where的條件中如只用tt1字段來判斷;就會(huì)用到一半的聚集索引;

where的條件中如tt1和tt2字段都用來判斷了;就會(huì)全用到聚集索引;

where的條件中如只用tt2字段來判斷;就會(huì)用不到聚集索引了;

5.盡量不要使用TEXT數(shù)據(jù)類型

除非你使用TEXT處理一個(gè)很大的數(shù)據(jù),否則不要使用它因?yàn)樗灰子诓樵?,速度慢,用的不好還會(huì)浪費(fèi)大量的空間,一般的,VARCHAR可以更好的處理你的數(shù)據(jù)。

6.盡量不要使用臨時(shí)表

除非你必須這樣做一般使用子查詢可以代替臨時(shí)表使用臨時(shí)表會(huì)帶來系統(tǒng)開銷,如果前臺(tái)的代碼你是使用數(shù)據(jù)庫連接池而臨時(shí)表卻自始至終都存在SQL Server提供了一些替代方案,比如Table數(shù)據(jù)類型。

7.盡量少使用游標(biāo)

原因很簡單;就是游標(biāo)的算法是最原始的計(jì)算機(jī)算法(和for.if等語句一樣,一條條搜索來算;效率極低);而sql語句用的是集合運(yùn)算;速度則快的多;如果用索引速度則很快(用了指針)。