麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > SQL Server > 正文

SQL Server里書簽查找的性能傷害

2024-08-31 01:04:46
字體:
來源:轉載
供稿:網友

在我的博客上,以前我經常談到SQL Serverl里的sql/8920.html">書簽查找,還有它們帶來的很多問題。在今天的文章里,我想從性能角度進一步談下書簽查找,還有它們如何拉低你整個SQL Server性能。

書簽查找——反復循環

如果你的非聚集索引不是個覆蓋非聚集索引,SQL Server的查詢優化器會引入書簽查找。對于從非聚集索引你返回的每一行,SQL Server需要在聚集索引里或堆表里進行額外的查找操作。

例如當你的的聚集索引包含3層,為了返回必要的信息,對于每一行,你需要3頁額外的讀取。因此,查詢優化器再執行計劃里選擇書簽查找操作,僅在有意義的時候發生——基于你查詢的選擇度。下圖展示了有書簽查找操作的執行計劃。

sql,server,書簽查找,性能

通常人們不會太關注書簽查找,因為它們只執行幾次。如果你的查詢選擇度太低,查詢優化器會用聚集索引掃描或表掃描運算符直接掃描整個表。但只在SQL Server重用緩存的執行計劃,這個計劃是有多次不同運行值,包含書簽查找的(基于最初提供的輸入值),因此這個情況很容易發生,書簽查找反復執行。

為了演示這個性能問題,接下來的查詢我指定查詢優化器使用特定的非聚集索引。查詢本身返回80000行,因為對于每個查詢執行,SQL Server需要進行書簽查找80000次——反復執行。

CREATE PROCEDURE RetrieveDataAS SELECT * FROM Table1 WITH (INDEX(idxTable1_Column2)) WHERE Column3 = 2GO

下圖展示了查詢執行后的實際執行計劃。

sql,server,書簽查找,性能

執行計劃看起來非常恐怖(查詢優化器甚至啟用了并行計劃!),因為書簽查找運算符這里執行了80000次,查詢本身產生了超過165000個邏輯讀!(邏輯讀個數可以從STATISTIC IO里獲取)。

sql,server,書簽查找,性能

接下來向你展示下,當你有很多并行用戶執行這個糟糕查詢時,SQL Server會發生什么。我會使用ostress.exe(RML工具的一部分)來模擬100個并行用戶的查詢。

ostress.exe -Q”EXEC BookmarkLookupsPerformance.dbo.RetrieveData” -n100 -q

在我的測試系統上花費了近15秒來完成100個并行查詢。在此期間,CPU占用很高,因為SQL Server需要嵌套循環運算符來進行書簽查找操作。嵌套循環操作當然很占CPU資源。

現在讓我們修改索引設計,為這個查詢創建覆蓋非聚集索引。有了非聚集索引,查詢優化器不需要再執行計劃里進行書簽查找。一個非聚集索引查找就可以返回同樣的結果:

CREATE NONCLUSTERED INDEX idxTable1_Column2 ON Table1(Column3)INCLUDE (Column2)WITH (DROP_EXISTING = ON)GO

這次當我們再次用ostress.exe執行同個查詢,我們看到每個查詢在5秒內完成。和我們剛才看到的15秒有很大的區別。這就是覆蓋非聚集索引的威力:在我們查詢里氣門請求的數據都可以在非聚集索引里直接找到,因此書簽查找就可以避免。

小結

在這個文章里我向你展示了不好的書簽查找會傷及性能。因此,對于重要的查詢快速完成查詢非常重要——而使用并行的書簽查找的執行計劃并不是好的選擇。這里覆蓋非聚集索引可以幫到你。下次設計索引時可以考慮下這個方法。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持VeVb武林網!


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日本成人一区二区三区 | 精品无码久久久久久国产 | 一本色道久久综合亚洲精品小说 | 黄色成人在线 | 538在线精品| 49vv看片免费| 亚洲精品一区国产精品丝瓜 | 久久视讯 | 欧美精品免费一区二区三区 | 午夜视频久久久 | 亚洲网站免费观看 | 久久精品av| 精品国产96亚洲一区二区三区 | 国产一级二级在线播放 | 久久久久久久久久久久久久av | 国产免费让你躁在线视频 | 日本在线播放一区二区 | 国产精品视频1区 | 91免费视频版 | 激情亚洲一区二区 | 精品国产91久久久久久久妲己 | 久久一本日日摸夜夜添 | 999久久久精品 | 91精品片| 最新一级毛片 | 粉嫩粉嫩一区二区三区在线播放 | 欧美成人午夜一区二区三区 | 国产精品久久久久久模特 | 美女黄污视频 | 91情侣在线偷精品国产 | 久久国产免费视频 | 国产精品一区在线观看 | 制服丝袜日日夜夜 | 久久久三区 | 国产黄色网页 | 午夜在线视频一区二区三区 | 欧美日韩成人一区二区 | 亚洲天堂ww | 免费欧美精品 | 国外成人在线视频 | 亚洲精品午夜国产va久久成人 |