KB2938462 – PATAISA: trūkstama arba neteisinga informacija apie trūkstamus indeksus pateikiama pateikus užklausą „SQL Server“ 2014"

Taikoma
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Požymiai

Tarkime, naudojate "Microsoft „SQL Server“ 2014". Gali kilti šios dvi problemos, įtrauktos į "„SQL Server“ 2014" leidimo pastabas:

  • Trūkstamos rodyklės informacijos netinkamai praneškite įtrauktus stulpelius atminčiai optimizuotai lentelei

    Problema: jei "„SQL Server“ 2014" aptinka trūkstamą atminčiai optimizuotos lentelės užklausos indeksą, ji praneš apie trūkstamą indeksą SHOWPLAN_XML, taip pat trūkstamo indekso DMV, pvz., sys.dm_db_missing_index_details. Kai kuriais atvejais trūkstamoje indekso informacijoje bus įtraukti stulpeliai. Kadangi visi stulpeliai netiesiogiai įtraukiami į visus atminčiai optimizuotų lentelių indeksus, negalima aiškiai nurodyti įtrauktų stulpelių su atminčiai optimizuotais indeksais.

  • Trūkstamos indekso informacijos neįtraukite trūkstamų indeksų, jei maišos indeksas yra, bet užklausai netinka

    Problema: jei užklausoje nurodomos atminties optimizuotos lentelės stulpeliuose yra HASH indeksas, bet indekso negalima naudoti užklausai, „SQL Server“ 2014" ne visada praneš trūkstamą indeksą SHOWPLAN_XML ir DMV sys.dm_db_missing_index_details.

    Visų pirma, jei užklausoje yra lygybės taisyklių sąlygų, apimančių indekso raktų stulpelių pogrupį, arba jei užklausoje yra nelygybės taisyklių sąlygų, apimančių indekso rakto stulpelius, HASH indekso negalima naudoti tokį, koks yra, o norint efektyviai vykdyti užklausą, reikėtų kitokio indekso.

Priežastis

Šios problemos kyla dėl to, kad trūkstama užklausų optimizavimo indekso logika neskiria tradicinių nesugrupuotų indeksų disko pagrindu veikiančiose lentelėse ir naujų indeksų tipų, skirtų atminčiai optimizuotoms lentelėms.

Sprendimas

Šios problemos pirmą kartą buvo išspręstos šiame kaupiamajame "„SQL Server“" naujinime. 

1 kaupiamasis naujinimas, skirtas „SQL Server“ 2014 /en-us/help/2931693

Apie kaupiamuosius „SQL Server“ naujinimus

Kiekviename naujame „SQL Server“ kaupiamajame naujinime yra visos karštosios pataisos ir visos saugos pataisos, kurios buvo įtrauktos į ankstesnį kaupiamąjį naujinimą. Peržiūrėkite naujausius "„SQL Server“" kaupiamuosius naujinimus:

      

Sprendimo būdas

Norėdami išspręsti šias problemas, naudokite šiuos sprendimo būdus:

  • Problemos sprendimas: Trūkstamos rodyklės informacijos netinkamai praneškite įtrauktus stulpelius atminčiai optimizuotai lentelei

    Nenurodykite sąlygos INCLUDE su rodykliais atminčiai optimizuotose lentelėse.

  • Problemos sprendimas: Trūkstamos rodyklės informacijos praleiskite trūkstamus indeksus, jei maišos indeksas yra, bet netinka užklausai

    Jei naudojate maišos indeksus, patikrinkite užklausas ir užklausų planus, kad nustatytumėte, ar užklausoms gali būti naudingos indekso ieškos operacijos indekso rakto pogrupyje arba indekso ieškos operacijos nelygybės taisyklės sąlygose. Jei norite ieškoti indekso rakto poaibio, naudokite NONCLUSTERED indeksą arba HASH indeksą būtent tuose stulpeliuose, kurių jums reikia. Jei reikia ieškoti nelygybės taisyklės, naudokite NONCLUSTERED indeksą, o ne HASH.

Pastaba: sprendimo būdai yra iš "„SQL Server“ 2014" leidimo pastabos

Būsena

„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.