sql server執(zhí)行計(jì)劃教會(huì)我如何創(chuàng)建索引?

sql server執(zhí)行計(jì)劃教會(huì)我如何創(chuàng)建索引?

ID:30505208

大?。?6.92 KB

頁數(shù):4頁

時(shí)間:2018-12-30

sql server執(zhí)行計(jì)劃教會(huì)我如何創(chuàng)建索引?_第1頁
sql server執(zhí)行計(jì)劃教會(huì)我如何創(chuàng)建索引?_第2頁
sql server執(zhí)行計(jì)劃教會(huì)我如何創(chuàng)建索引?_第3頁
sql server執(zhí)行計(jì)劃教會(huì)我如何創(chuàng)建索引?_第4頁
資源描述:

《sql server執(zhí)行計(jì)劃教會(huì)我如何創(chuàng)建索引?》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、我真正系統(tǒng)地接觸和學(xué)習(xí)黨的基本知識(shí)是在這次中級(jí)黨校的培訓(xùn)班上。通過學(xué)習(xí),了解了黨的發(fā)展歷程,對(duì)黨的性質(zhì)、宗旨、任務(wù)等基本知識(shí)有了進(jìn)一步的了解SQLServer執(zhí)行計(jì)劃教會(huì)我如何創(chuàng)建索引?  SQLServer執(zhí)行計(jì)劃,是我們分析SQL執(zhí)行情況的一大利器,通過它,我們也可以很方面的查看索引的執(zhí)行,在實(shí)踐之前,需要了解一些必備技能,以下知識(shí)點(diǎn)摘自-看懂SqlServer查詢計(jì)劃?! QLServer有二種索引:聚集索引和非聚集索引。二者的差別在于:【聚集索引】直接決定了記錄的存放位置,或者說:根據(jù)聚集索引可以直接獲取到記錄。【非聚集索引】保存了二個(gè)信息:1.相應(yīng)索引

2、字段的值,2.記錄對(duì)應(yīng)聚集索引的位置(如果表沒有聚集索引則保存記錄指針)。因此,如果能通過【聚集索引】來查找記錄,顯然也是最快的?! QLServer會(huì)有以下方法來查找您需要的數(shù)據(jù)記錄:  【TableScan】:遍歷整個(gè)表,查找所有匹配的記錄行。這個(gè)操作將會(huì)一行一行的檢查,當(dāng)然,效率也是最差的?!  綢ndexScan】:根據(jù)索引,從表中過濾出來一部分記錄,再查找所有匹配的記錄行,顯然比第一種方式的查找范圍要小,因此比【TableScan】要快?!  綢ndexSeek】:根據(jù)索引,定位(獲?。┯涗浀拇娣盼恢?,然后取得記錄,因此,比起前二種方式會(huì)更快?!  綜

3、lusteredIndexScan】:和【Table對(duì)黨的認(rèn)識(shí)也有了進(jìn)一步的提高。才真正體會(huì)到了中國(guó)共產(chǎn)黨的偉大、光榮和正確,更感到只有中國(guó)共產(chǎn)黨是全中國(guó)最廣大人民利益的忠實(shí)代表我真正系統(tǒng)地接觸和學(xué)習(xí)黨的基本知識(shí)是在這次中級(jí)黨校的培訓(xùn)班上。通過學(xué)習(xí),了解了黨的發(fā)展歷程,對(duì)黨的性質(zhì)、宗旨、任務(wù)等基本知識(shí)有了進(jìn)一步的了解Scan】一樣。注意:不要以為這里有個(gè)Index,就認(rèn)為不一樣了。其實(shí)它的意思是說:按聚集索引來逐行掃描每一行記錄,因?yàn)橛涗浘褪前淳奂饕齺眄樞虼娣诺?。而【TableScan】只是說:要掃描的表沒有聚集索引而已,因此這二個(gè)操作本質(zhì)上也是一樣的。  【C

4、lusteredIndexSeek】:直接根據(jù)聚集索引獲取記錄,最快!  所以,當(dāng)發(fā)現(xiàn)某個(gè)查詢比較慢時(shí),可以首先檢查哪些操作的成本比較高,再看看那些操作在查找記錄時(shí),是不是【TableScan】或者【ClusteredIndexScan】,如果確實(shí)和這二種操作類型有關(guān),則要考慮增加索引來解決了。不過,增加索引后,也會(huì)影響數(shù)據(jù)表的修改動(dòng)作,因?yàn)樾薷臄?shù)據(jù)表時(shí),要更新相應(yīng)字段的索引。所以索引過多,也會(huì)影響性能。還有一種情況是不適合增加索引的:某個(gè)字段用0或1表示的狀態(tài)。例如可能有絕大多數(shù)是1,那么此時(shí)加索引根本就沒有意義。這時(shí)只能考慮為0或者1這二種情況分開來保存了,分

5、表或者分區(qū)都是不錯(cuò)的選擇。  應(yīng)用分析  我們先不建任何索引(除了主鍵ID的聚集索引),來看一下上面SQL代碼,在SQLServer執(zhí)行計(jì)劃中的執(zhí)行情況:對(duì)黨的認(rèn)識(shí)也有了進(jìn)一步的提高。才真正體會(huì)到了中國(guó)共產(chǎn)黨的偉大、光榮和正確,更感到只有中國(guó)共產(chǎn)黨是全中國(guó)最廣大人民利益的忠實(shí)代表我真正系統(tǒng)地接觸和學(xué)習(xí)黨的基本知識(shí)是在這次中級(jí)黨校的培訓(xùn)班上。通過學(xué)習(xí),了解了黨的發(fā)展歷程,對(duì)黨的性質(zhì)、宗旨、任務(wù)等基本知識(shí)有了進(jìn)一步的了解  從上面的執(zhí)行計(jì)劃中,我們可以很直觀的看出差別,所以在寫SQL的時(shí)候,一定要慎重啊,這邊為了方便展示,我們還是以ProduceTime字段進(jìn)行排序,

6、按照ID排序,雖然沒有了SORT性能開銷,但是發(fā)現(xiàn)查詢記錄為“ClusteredIndexScan”,這是全表查詢的意思,我們理想的應(yīng)該是“IndexSeek”或者“ClusteredIndexSeek”,因?yàn)檫@種是按照索引查詢,速度最快。按照我們程序員的理解,應(yīng)該創(chuàng)建一個(gè)非聚集索引,比如下面IX_Product_Provider_State索引:  “IndexSeek”,這就是我們想要的效果,其實(shí)關(guān)于索引的創(chuàng)建有很多的現(xiàn)實(shí)問題,比如組合字段索引和單個(gè)字段索引有何不同?就像上面示例中的查詢用例,如果ProduceTime排序在其他查詢條件中也存在,是不是應(yīng)該拉出

7、來創(chuàng)建一個(gè)索引?還是像上面一樣,和查詢條件一起創(chuàng)建一個(gè)組合字段索引?還有一種情況就是,在一個(gè)應(yīng)用程序查詢中,存在單個(gè)字段的查詢,也存在組合字段的查詢,那這時(shí)候我們是創(chuàng)建單個(gè)字段索引?還是創(chuàng)建組合字段索引呢?這幾個(gè)問題,你創(chuàng)建一下索引,然后用“SQL執(zhí)行計(jì)劃”試試就知道了??偨Y(jié)針對(duì)上面的查詢用例,我個(gè)人覺得,最好的方案是:排序字段使用ID,按照實(shí)際應(yīng)用場(chǎng)景,提取出需要查詢的字段,避免SELECT*,這樣會(huì)減少在添加“包含性列”的字段,創(chuàng)建IX_Product_Provider_State對(duì)黨的認(rèn)識(shí)也有了進(jìn)一步的提高。才真正體會(huì)到了中國(guó)共產(chǎn)黨的偉大、光榮和正確,更感到

8、只有中國(guó)共

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。