Příznaky
Jde o takovouto situaci:
-
Filtrované indexu a Sloupec IS NULL predikátu výraz vytvoříte v Microsoft SQL Server.
-
Sloupcové pole není součástí struktury rejstříku. (To znamená sloupcové pole není klíč nebo zahrnuty do definice indexu filtrované sloupce.)
Například můžete vytvořit následující dotaz:
CREATE UNIQUE CLUSTERED INDEX i_action_rn on dbo.filter_test (rn) CREATE NONCLUSTERED INDEX i_action_filt_action_date_type ON dbo.filter_test (action_type) WHERE action_date IS NULL
Všimněte si, že tento dotaz nepoužívá následující filtrované indexu:
select count(*) from dbo.filter_test where action_date is null and action_type=1
V tomto scénáři není použita filtrované indexu. Místo toho se používá seskupený index.
Řešení
Chcete-li tento problém vyřešit, zahrňte sloupec, který je testován jako NULL vrácené sloupce. Nebo přidat tento sloupec jako zahrnout sloupce v indexu.
CREATE NONCLUSTERED INDEX New_i_action_filt_action_date_type ON dbo.filter_test (action_type) include (action_date) WHERE action_date IS NULL
Další informace
Viz následující weby společnosti Microsoft Developer Network (MSDN):
Vytvořte filtrovaný indexy
Clustery a bez clusterů indexy, které jsou popsány