我在SQL Server中創建一個簡單的表:試圖瞭解SQL執行計劃
MemberId INT PRIMARY KEY Identity
Name NVARCHAR(100) NULL
Description NVARCHAR(250) NULL
已添加了一個聚集索引,當我創建成員Id作爲主鍵的唯一指標。我沒有爲名稱或說明添加索引。
我增加大約30,000行測試數據表中,並做了以下查詢:
SELECT * FROM Members WHERE Name = 'Foo'
執行計劃表示如下:
Clustered Index Scan - cost 100%
這是如何聚集索引掃描?我不預測聚集索引。我認爲這將是更多的表掃描。誰可以給我解釋一下這個?如果不這樣做會導致表掃描到底是什麼?
通常的要求是,你應該嘗試在該列上創建一個具有非聚集索引的相同表格,用相同的30,000行填充它,然後對每個表格運行查詢,並比較這些計劃。你應該看到一個非聚集索引seek,它應該更有效率(對於這個查詢,至少)。 –