[英]SQL Server non-clustered index
我在SQL Server中有兩個不同的查詢,我想澄清一下
查詢:
SELECT *
FROM table_name
WHERE column < 2
和
SELECT column
FROM table_name
WHERE column < 2
我在column
上有一個非聚集索引。
我曾經使用過Postgresql,但對SQL Server和此類索引並不熟悉。
當我在這里閱讀許多問題時,我記下了兩個筆記:
當我有一個非聚集索引時 ,我需要再執行一個步驟才能訪問數據
使用非聚集索引,我可以擁有表的一部分的副本,而且響應時間更快。
所以,我很困惑。
還有一個問題是,當我使用“ SELECT *”時,這是非聚集索引的影響嗎?
第一次選擇將使用非聚集索引來找到聚集鍵[存在聚集索引]或頁面和插槽[無聚集索引]。 然后將用於獲取行。 根據您的STATS(數據),查詢計划將有所不同。
第二個查詢被非聚集索引“覆蓋”。 這意味着非聚集索引包含您選擇的所有數據。 不需要聚簇鍵,也不需要聚簇索引和/或堆來向選擇列表提供數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.