Příznaky
Předpokládejme, že používáte Microsoft SQL Server 2014. Můžete narazit na následující dva problémy, které jsou součástí poznámek k verzi pro SQL Server 2014:
Chybějící podrobnosti o indexu nesprávně oznamují zahrnuté sloupce pro tabulku optimalizovanou pro paměť
Problém: Pokud SQL Server 2014 zjistí chybějící index pro dotaz v tabulce optimalizované pro paměť, oznámí chybějící index v SHOWPLAN_XML, stejně jako v chybějících zobrazení dynamické paměti (DMV), jako je sys.dm_db_missing_index_details. V některých případech budou chybějící podrobnosti indexu obsahovat zahrnuté sloupce. Vzhledem k tomu, že všechny sloupce jsou implicitně součástí všech indexů v tabulkách optimalizovaných pro paměť, není povoleno explicitně zadávat zahrnuté sloupce s indexy optimalizovanými pro paměť.
V podrobnostech chybějícího indexu chybějí chybějící indexy, pokud existuje index hash, který však není pro dotaz vhodný
Problém: Pokud máte index HASH ve sloupcích tabulky optimalizované pro paměť, na kterou se odkazuje v dotazu, ale index nelze pro dotaz použít, SQL Server 2014 nebude vždy hlásit chybějící index v SHOWPLAN_XML a v sys.dm_db_missing_index_details DMV.
Konkrétně pokud dotaz obsahuje predikáty rovnosti, které zahrnují podmnožinu sloupců s klíčem indexu, nebo pokud obsahuje predikáty nerovnosti, které zahrnují sloupce klíčů indexu, není možné index HASH použít tak, jak je, a k efektivnímu provedení dotazu by byl nutný jiný index.
Příčina
K problémům dochází, protože chybějící logika indexu v optimalizátoru dotazů nerozlišuje mezi tradičními neclusterovanými indexy u tabulek založených na disku a novými typy indexů pro tabulky optimalizované pro paměť.
Řešení
Tyto problémy byly poprvé opraveny v následující kumulativní aktualizaci SQL Server.
Kumulativní aktualizace 1 pro SQL Server 2014 /en-us/help/2931693
Informace o kumulativních aktualizacích pro SQL Server
Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace pro SQL Server:
Alternativní řešení
Pokud chcete tyto problémy vyřešit, použijte následující alternativní řešení:
Alternativní řešení problému: Chybějící podrobnosti o indexu nesprávně oznamují zahrnuté sloupce pro tabulku optimalizovanou pro paměť.
Nezadávejte klauzuli INCLUDE s indexy v tabulkách optimalizovaných pro paměť.
Alternativní řešení problému: Chybějící podrobnosti o indexu vynechají chybějící indexy, pokud existuje index hash, který však není pro dotaz vhodný
V případě, že používáte hashovací indexy, zkontrolujte dotazy a plány dotazů a zjistěte, jestli by dotazy mohly těžit z operací hledání indexu u podmnožiny klíče indexu nebo z operací hledání indexu u predikátů nerovnosti. Pokud potřebujete hledat podmnožinu klíče indexu, použijte buď index NONCLUSTERED, nebo použijte index HASH přesně na sloupcích, ve kterých potřebujete hledat. Pokud potřebujete hledat predikát nerovnosti, použijte místo hodnoty HASH index NONCLUSTERED.
Poznámka: Alternativní řešení jsou z poznámek k verzi pro SQL Server 2014
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.