iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
自我挑戰組

C# 和 SQL 探索之路 - 2系列 第 29

Day 29: SQL 關於非叢集索引與索引模式

  • 分享至 

  • xImage
  •  

SQL 裡面最重要的觀念之一,就是索引。
今天來提提索引中重要的兩個項目。

關於非叢集索引

就算資料表有建立非叢集索引,在沒有包含建立其它欄位的資料時,如果仍要透過索引以外的欄位查詢,Query Optimizer 可能會改用「資料表掃描 (Table Scan)」,而非利用「非叢集索引」。

如果透過資料表提示強制使用「非叢集索引」,會因為需要額外的 RID 查閱 (或索引鍵查閱),導致查詢成本提高很多 (還會多出「巢狀迴圈」運算子)。

索引模式

索引交集 (Index Intersection):在 Where 條件中,同時使用到不同索引的「鍵值資料行」,並進行搜尋 (Seek)。
複合索引 (Composite Indexes):只要是由多個資料行所組成的索引「鍵值資料行」的索引,皆稱之為「複合索引」。
篩選索引 (Filtered Indexes):先透過 Where 條件篩選資料,再依據「鍵值資料行」來建置索引,因此大小比一般的索引還小。
索引檢視表 (Indexed Views):把查詢所得的資料當成一個真實的資料表儲存。

改寫自:SQL Server 效能調校 / 陳祥輝,陳臆如,黃浩著 / 博碩文化 / 2014,ISBN 978-986-201-902-3


上一篇
Day28: 怎麼閱讀複雜的 SQL
下一篇
Day 30: 資料表的正規化與設計的摘要 & 後記
系列文
C# 和 SQL 探索之路 - 230
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言