2017-03-04 52 views
0

我期待做一個索引尋找,請記住我是一個新手在索引,是否有可能實現索引尋找如果我要使用冒險工程運行folling 。最好的方式索引檢索數據使用訂購

select BusinessEntityID, FirstName, MiddleName, LastName, ModifiedDate 
from dbo.person 
order by ModifiedDate 

我已經創建了下面的非聚集索引:

create index IX_ModifiedOn on [dbo].[person] (ModifiedDate Asc) 

我似乎並沒有越來越索引查找望着查詢執行計劃。我只想知道在ModifiedDate上訂購索引的方法嗎?

也有是在BusinessEntityID作爲其主鍵

謝謝你一個聚集索引

+1

如果合適,SQL Server將使用該索引。如果數據太小,優化器可能會決定實際進行排序比使用索引要快。 –

+0

嗨戈爾丹,謝謝你,我實際上是在2700萬行的工作桌上嘗試這個。我只是用冒險來模擬同一個校長。但有可能喲實現索引這種方式在modifiedDate上? – abs786123

+0

您在一個查詢中選擇了2700萬行,沒有「where」或「join」? – SqlZim

回答

1

既然你沒有任何過濾器選擇整個表或聯接,你不會得到一個索引查找,除非索引也涵蓋了你的查詢。否則,引擎將不得不返回到桌面以獲取您正在選擇的列。這將是您的示例的覆蓋索引。

create index IX_ModifiedOn on [dbo].[person] (ModifiedDate Asc) 
    include (BusinessEntityID, FirstName, MiddleName, LastName); 
+0

的Data Ware Housing場景中創建一個臨時表格乾杯,我仍然得到90%的成本。無論如何要減少?我只想選擇整個表格,但通過降低訂購成本 – abs786123

+0

@ abs786123然後,您的示例可能不會準確地描述您的實際情況。這不會在Adventureworks上產生'sort'操作,下面是創建該索引後的執行計劃:https://www.brentozar.com/pastetheplan/?id=H10-0jY9x – SqlZim