Dire que je suis un index défini comme suit:SQL Server 2008 - Filtrée Index
CREATE NONCLUSTERED INDEX [IX_Marker] ON [dbo].[Marker]
(
[Run] ASC,
[EquipmentID] ASC,
[ReadTime] DESC
)
INCLUDE ([Sequence])
WHERE ([ReadTime]>'07/01/2011')
Dans quelles circonstances le générateur de plan de SQL Server sélectionnez cet index? Par exemple, disons que j'ai la requête suivante:
Select * From Marker Where ReadTime > '3/1/2011'
Je suppose que l'index ne serait pas utilisé dans ce cas? Mais si je changeais la clause Where en '01/08/2011', elle serait utilisée?
Non correct. Ajoutez OPTION (RECOMPILE) après la clause Where et il sera utilisé. –
Etes-vous vraiment sûr et avez-vous essayé cela? J'ai essayé ceci avec divers index filtrés et cela n'a jamais fonctionné. –
Oui j'ai essayé ceci, et cela fonctionne. –