黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Sql Server 性能優(yōu)化之包含列

系統(tǒng) 2295 0

Sql Server 性能優(yōu)化之包含列

?

? ? ?導(dǎo)讀:數(shù)據(jù)數(shù)優(yōu)化查詢一直是個(gè)比較熱門的話題,小生在這方面也只能算是個(gè)入門生。今

天我們就講下數(shù)據(jù)庫 包含列 這個(gè)一項(xiàng)的作用及帶來的優(yōu)化效果

? ??

? ? ? 引用下MSDN里面的一段解釋:

?

? ? ? 當(dāng)查詢中的所有列都作為鍵列或非鍵列包含在索引中時(shí),帶有包含性非鍵列的索引可以顯

著提高查詢性能。 這樣可以實(shí)現(xiàn)性能提升,因?yàn)椴樵儍?yōu)化器可以在索引中找到所有列值;不

訪問表或聚集索引數(shù)據(jù),從而減少磁盤 I/O 操作

??

? ? ?? 上面這一段什么意思呢?

?

? ? ? 意思就是說設(shè)置好包含列,能提高查詢性能,減少IO輸出。

? ? ? 這樣說大家都覺得很抽象,下面我們舉個(gè)例子來說明這個(gè)包含列的效果,

?

? ? ?? 如何創(chuàng)建包含列索引?

?

????? ?1、 在對象資源管理器中,單擊加號以便展開包含您要創(chuàng)建帶有非鍵列的索引的表的數(shù)據(jù)庫。

????? ?2、 單擊加號以便展開“表”文件夾。

????? ?3、單擊加號以便展開您要創(chuàng)建帶有非鍵列的索引的表。

????? ?4、右鍵單擊“索引”文件夾,指向“新建索引”,然后選擇“非聚集索引…”。

????? ?5、 在“新建索引”對話框的“常規(guī)”頁中,在“索引名稱”框中輸入新索引的名稱。

????? ?6、 在“索引鍵列”選項(xiàng)卡下,單擊“添加…”。

????????7、在“從 table_name 中選擇列”對話框中,選中要添加到索引的一個(gè)或多個(gè)表列的復(fù)選框。

????? ?8、 單擊“確定”。

????? ?9、 在“包含性列”選項(xiàng)卡下,單擊“添加…”。

????? ?10、 在“從 table_name 中選擇列”對話框中,選中要作為非鍵列添加到索引的一個(gè)或多個(gè)表列的復(fù)選框。

????? ?11、 單擊“確定”。

????? ?12、 在“新建列”對話框中,單擊“確定”。

?

? ?? 舉個(gè)例子來說明這個(gè)包含列的效果

? ??

? ? ? SQL:select Sex from User Where UserName='小三'

??

? ?? 我們來看下上面的語句 根據(jù)UserName來查詢小三的性別,加入我們表中沒有建任何索引,如果數(shù)據(jù)比較少的話 這個(gè)查詢語句是沒有任何問題的,但是當(dāng)我們的用戶量到達(dá)上千萬時(shí),這個(gè)查詢可能就沒當(dāng)初那么快了,這個(gè)時(shí)候怎么提高查詢效率呢?

? ? ?

? ?? ?建立非聚集索引

?

? ? ?第一個(gè)方法:給UserName建立非聚集索引,建立了索引之后數(shù)據(jù)庫就能更快的找到這條數(shù)據(jù)所存在的位置。

?

? ? ?建立索引包含列

? ??

? ? ?第二個(gè)方法:在給UserName建立非聚集索引的同時(shí),建議包含列,包含Sex這一列,這樣在快速定位UserName的同時(shí)又能很快定位出Sex的物理位置。包含列是對查詢條件后的一種性能補(bǔ)充。?

? ? ?

? ? ?適用場景:該條查詢用的非常頻繁。 select age from User Where UserName='小三'

比如在查詢UserName的同時(shí)查詢age非常多 就可以考慮給UserName建立非聚集索引的時(shí)候包含age這一列。

?

? ? 附上:建立包含列的SQL語句

? ??

1
2
3
4
5
6
7
8
9
USE?AdventureWorks2012;
GO
--?Creates?a?nonclustered?index?on?the?Person.Address?table?with?four?included?(nonkey)?columns.?
--?index?key?column?is?PostalCode?and?the?nonkey?columns?are
--?AddressLine1,?AddressLine2,?City,?and?StateProvinceID.
CREATE ? NONCLUSTERED? INDEX ? IX_Address_PostalCode
ON ? Person.Address?(PostalCode)
INCLUDE?(AddressLine1,?AddressLine2,?City,?StateProvinceID);
GO

?

? 同時(shí)歡迎到我的個(gè)人博客上做客: http://www.diyibk.com/post/140.html

Sql Server 性能優(yōu)化之包含列


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論