есть табличка
есть запрос
если делаем так
+ хинтуем индекс, то у нас лукап за кластерным ключем!!!
если делаем
то ожидаемо, запрос удовлетворяется только фильтрованным индексом
CREATE TABLE [cache].[CatalogSlice] ( [ID] [int] IDENTITY(1,1) NOT NULL, [Catalog_ID] [uniqueidentifier] NOT NULL, [Slice_Hash] [uniqueidentifier] NOT NULL, [DateClosed] [smalldatetime] NULL, [StartDate] [datetime] NOT NULL, [EndDate] [datetime] NOT NULL, [Variant_ID] [uniqueidentifier] NOT NULL, [CalcDuration] [int] NOT NULL, [CalcDate] [smalldatetime] NOT NULL, CONSTRAINT [PK_CatalogSlice_ID] PRIMARY KEY CLUSTERED([ID] ASC) )
есть запрос
select Catalog_ID from [cache].[CatalogSlice] with(index = IXF_CatalogSlice__CatalogID_SliceHash_Incl_StartDate) where Catalog_ID = '3478CD0F-DAAB-428F-AFFA-2578D508F1B0' and Slice_hash = '7076CB3D-D0EC-06B6-23D1-058D9441B2BA' and DateClosed is null select ID from [cache].[CatalogSlice] where Catalog_ID = '3478CD0F-DAAB-428F-AFFA-2578D508F1B0' and Slice_hash = '7076CB3D-D0EC-06B6-23D1-058D9441B2BA' and DateClosed is null
если делаем так
create unique index IXF_CatalogSlice__CatalogID_SliceHash_Incl_StartDate on [cache].[CatalogSlice]([Catalog_ID], [Slice_Hash], [DateClosed]) where (DateClosed is null)
+ хинтуем индекс, то у нас лукап за кластерным ключем!!!
если делаем
create unique index IXF_CatalogSlice__CatalogID_SliceHash_Incl_StartDate on [cache].[CatalogSlice]([Catalog_ID], [Slice_Hash], [DateClosed]) where (DateClosed is null)
то ожидаемо, запрос удовлетворяется только фильтрованным индексом