人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

淺析SQL Server的聚焦使用索引和查詢執(zhí)行計(jì)劃

發(fā)布日期:2021-12-16 20:31 | 文章來(lái)源:源碼中國(guó)

上一篇《淺析SQL Server 聚焦索引對(duì)非聚集索引的影響》我們講了聚集索引對(duì)非聚集索引的影響,對(duì)數(shù)據(jù)庫(kù)一直在強(qiáng)調(diào)的性能優(yōu)化,所以這一節(jié)我們統(tǒng)籌講講利用索引來(lái)看看查詢執(zhí)行計(jì)劃是怎樣的,簡(jiǎn)短的內(nèi)容,深入的理解。

透過(guò)索引來(lái)看查詢執(zhí)行計(jì)劃

我們首先來(lái)看看第一個(gè)例子

1、默認(rèn)使用索引

USE TSQL2012
GO
SELECT orderid 
FROM Sales.Orders
SELECT * 
FROM Sales.Orders

上述我們看到第2個(gè)查詢的所需要的開(kāi)銷(xiāo)是第1個(gè)查詢開(kāi)銷(xiāo)的3倍,當(dāng)然其中也涉及到第1個(gè)查詢只是返回一列而第2個(gè)查詢返回所有列,這其中也耗費(fèi)一小部分性能。對(duì)于SQL Server查詢而言,它內(nèi)部會(huì)利用索引來(lái)走最短的路徑獲取最優(yōu)的性能。我們能夠注意到即使將orderid作為主鍵,但是返回?cái)?shù)據(jù)并不是采用的主鍵所自動(dòng)生成的聚集索引而是非聚集索引。相信有很多人主觀上覺(jué)得返回主鍵而且查詢沒(méi)有查詢條件應(yīng)該是走主鍵的聚集索引,但是有時(shí)候事實(shí)并非如此,上一篇我們已經(jīng)討論過(guò)這個(gè)問(wèn)題,不再敘述。在第2個(gè)查詢中利用*返回?cái)?shù)據(jù)則是利用主鍵的聚集索引。

2、強(qiáng)制主鍵使用聚集索引

強(qiáng)制使用索引我們利用With(index(索引名稱))來(lái)創(chuàng)建,如下:

USE TSQL2012
GO
SELECT orderid 
FROM Sales.Orders WITH(INDEX(PK_Orders))
SELECT * 
FROM Sales.Orders WITH(INDEX(PK_Orders))

我們從上可以看出默認(rèn)返回主鍵列時(shí)利用非聚集索引,這里我們強(qiáng)制讓它走聚集索引,而對(duì)于第2個(gè)查詢就不用說(shuō)了,此時(shí)二者的開(kāi)銷(xiāo)是相當(dāng)?shù)摹?/p>

3、強(qiáng)制使用非聚集索引

我們繼續(xù)往下看,對(duì)查詢強(qiáng)制使用非聚集索引查找,如下:

USE TSQL2012
GO
SELECT orderid 
FROM Sales.Orders WITH(INDEX(idx_nc_custid))
SELECT * 
FROM Sales.Orders WITH(INDEX(idx_nc_custid))

由上可見(jiàn),二者開(kāi)銷(xiāo)區(qū)別之大,對(duì)于使用非聚集索引查詢1返回單列,而查詢2返回所有列的速度快如此之多,通過(guò)以上默認(rèn)使用索引、強(qiáng)制使用聚集索引、強(qiáng)制使用非聚集索引我們知道對(duì)于對(duì)于檢索所有列結(jié)果集使用主鍵的聚集索引是最佳選擇。

總結(jié)

通過(guò)上述演示我們知道即使創(chuàng)建了聚集索引也不會(huì)利用聚集索引檢索結(jié)果,有時(shí)候使用非聚集索引比使用聚集索引會(huì)提供更好的性能,當(dāng)然不能一概而論,二者皆有使用場(chǎng)景。當(dāng)每一次面試時(shí)談到數(shù)據(jù)庫(kù)優(yōu)化時(shí),第一想到的是索引,然后就沒(méi)有下文了,如何使用索引,怎么在不同場(chǎng)景使用不同的索引呢?在任何數(shù)據(jù)庫(kù)中索引一直都是一個(gè)很大的話題且是一個(gè)復(fù)雜的內(nèi)容,復(fù)雜的內(nèi)容皆是由簡(jiǎn)單堆積而成,我們必須如蝸牛般去慢慢研究,抽繭剝絲,最終才會(huì)有一個(gè)好的效果。簡(jiǎn)短的內(nèi)容,深入的理解。

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,同時(shí)也希望多多支持本站!

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部