Filtrované index, který vytvoříte a predikát IS NULL není použit v systému SQL Server

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

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Děkujeme za váš názor!

×