日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

SQL Server 聚集索引和非聚集索引的區別

系統 2198 0

非聚集索引和聚集索引的區別

不在不會詳細說明非聚集索引和聚集索引的結構有什么不一樣,因為這種東西網上已經說的很多了。

一個表一旦建立了聚集索引,那么那張表就是一張被b樹重新組織過的表。

而沒聚集索引表就是一個堆表。

什么是b樹,什么是堆表就不解釋了。

小弟對,非聚集索引狀況下 和 聚集索引狀況下的 常量綁定和變量綁定做了測試。

會發在這邊是因為聚集索引的變量綁定的執行計劃,和非聚集索引的變量綁定的執行計劃不一樣。

      
        use
      
       northwind
      


CREATE INDEX idx_orderdate_orders ON dbo.Orders(OrderDate)
DBCC FREEPROCCACHE
SELECT * FROM Orders WHERE OrderDate > ' 19990101 '
DBCC FREEPROCCACHE
DECLARE @fromdate_copy datetime
SELECT @fromdate_copy = ' 19990101 '
SELECT * FROM Orders WHERE OrderDate > @fromdate_copy

DROP INDEX idx_orderdate_orders ON dbo.Orders
go
CREATE CLUSTERED INDEX cidx_orderdate_orders ON dbo.Orders(OrderDate)
DBCC FREEPROCCACHE
SELECT * FROM Orders WHERE OrderDate > ' 19990101 '
DBCC FREEPROCCACHE
DECLARE @fromdate_copy datetime
set @fromdate_copy = ' 19990101 '
SELECT * FROM Orders WHERE OrderDate > @fromdate_copy

DROP INDEX cidx_orderdate_orders ON dbo.Orders

執行計劃結果:

SQL Server 聚集索引和非聚集索引的區別

SQL Server 聚集索引和非聚集索引的區別

結果顯而易見了,變量綁定對非聚集索引和聚集索引執行計劃不一樣。

有人看了執行計劃就會說,orderdate 沒有走索引很正常啊,可能是選擇度不夠。但是用常量綁定的時候就用了索引查詢。

所以這種解釋是不通的。

聚集索引下,使用了索引查找,非聚集索引下,使用了表掃描。

原因何在,本人也不知道。這個就要問問寫優化器的人,也同時希望知道內情的人透露一下。

和大家分享。

SQL Server 聚集索引和非聚集索引的區別


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 元阳县| 德钦县| 郎溪县| 滁州市| 洪雅县| 四子王旗| 乡宁县| 双辽市| 明星| 永顺县| 济源市| 阳泉市| 广元市| 东城区| 永川市| 通河县| 手机| 闸北区| 巩留县| 乐都县| 贵阳市| 建宁县| 黎平县| 台安县| 玉田县| 惠东县| 调兵山市| 文昌市| 绥阳县| 大宁县| 泰安市| 乌兰察布市| 长春市| 大田县| 黄骅市| 长垣县| 秦皇岛市| 远安县| 麻城市| 汤原县| 台江县|