Simptomi
Pretpostavimo da koristite Microsoft SQL Server 2014. Možete naići na sledeća dva problema koja su uključena u NAPOMENE uz izdanje sistema SQL Server 2014:
-
Nepravilni detalji indeksa koji nedostaju sadrže kolone za tabelu optimizovanu za memorijuProblem: ako SQL Server 2014 otkrije indeks koji nedostaje za upit u tabeli optimizovanoj za memoriju, prijaviće indeks koji nedostaje u SHOWPLAN_XML-u, kao i U DMV-ovima indeksa koji nedostaju, kao što je sys.dm_db_missing_index_details. U nekim slučajevima, detalji indeksa koji nedostaju sadržaće uključene kolone. Pošto su sve kolone implicitno uključene sa svim indeksima u tabelama optimizovanim za memoriju, nije dozvoljeno izričito navesti uključene kolone sa indeksima optimizovanim za memoriju.
-
Detalji indeksa koji nedostaju izostavljaju indekse koji nedostaju ako hash indeks postoji, ali nije pogodan za problem saupitom: Ako imate HASH indeks u kolonama tabele optimizovane za memoriju na koju se upućuje u upitu, ali indeks ne može da se koristi za upit, SQL Server 2014 neće uvek prijaviti indeks koji nedostaje u SHOWPLAN_XML i U DMV sys.dm_db_missing_index_details. Naročito ako upit sadrži predikate jednakosti koji uključuju podskup kolona indeksnih tastera ili ako sadrži predikate nejednakosti koji uključuju kolone indeksnih ključnih reči, hasH indeks se ne može koristiti o tome, a za efikasno izvršavanje upita biće potreban drugačiji indeks.
Uzrok
Do problema dolazi zato što logika indeksa koja nedostaje u optimizatoru upita ne razlikuje tradicionalne indekse bez grupisanih indeksa u tabelama zasnovanim na disku i novih tipova indeksa za tabele optimizovane za memoriju.
Rešenje
Problemi su prvi put otklonjeni prilikom sledeće kumulativne ispravke sistema SQL Server.
Kumulativna ispravka 1 za SQL Server 2014 /en-us/help/2931693
Svaka nova kumulativna ispravka za SQL Server sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodnu kumulativnu ispravku. Pogledajte najnovije kumulativne ispravke za SQL Server:
Rešenje
Da biste zaobišli ove probleme, koristite sledeća rešenja:
-
Zaobilazno rešenje za problem: Nedostajući detalji indeksa nepravilno izveštaj je uključivao kolone za tabelu koja je optimizovana za memorijuDo ne navodi odredbu INCLUDE sa indeksima u tabelama optimizovanim za memoriju.
-
Zaobilazno rešenje za problem: Nedostaju detalji indeksa koji izostavljaju indekse koji nedostaju ako hash indeks postoji, ali nije pogodan za upitIn slučaj koji koristite hash indekse, proverite upite i planove upita da biste utvrdili da li upiti mogu imati koristi od operacija traženja indeksa na podskupu indeksnog ključa ili operacije traženja indeksa na nejednakim predikatima. Ako je potrebno da potražite podskup indeksa, koristite indeks koji nijeCLUSTERED ili koristite HASH indeks na tačno 10 kolona koje treba da potražite. Ako je potrebno da tražite predikat nejednakosti, koristite indeks koji nije IZDVOJEN umesto HASH.
Napomena Zaobilaženja su iz sql Server 2014 Napomene uz izdanje
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".