對非唯一非叢集索引分區時,SQL Server 預設將分區欄位加為 非鍵 (INCLUDE) 欄位,確保索引與基表對齊。若索引已包含分區欄位則不再新增。
Fun_ClassifyResult_ClassId(INT) RANGE RIGHT (10000000, 20000000)。ClassifyResult,叢集索引 (Id, ClassId) ON 分區方案。IX_ClassifyResult_ArchiveId (ArchiveId) ON 相同分區方案,未指定 ClassId。INCLUDE (ClassId)。-- 查詢僅需 ArchiveId (索引鍵) → Seek 無 Lookup
SELECT TOP 10 Id, ArchiveId FROM ClassifyResult WHERE ArchiveId = 107347;
-- 查詢需 ClassId (若未 INCLUDE 則需 Key Lookup)
SELECT TOP 10 Id, ArchiveId, ClassId FROM ClassifyResult WHERE ArchiveId = 107347;
實測第二查詢 無 Key Lookup,證實 ClassId 已被自動加為 INCLUDE 欄位。
SWITCH PARTITION 快速資料移動/歸檔。