KB2938462 - FIX: puuduv või vale teave puuduvate registrite kohta tagastatakse, kui esitate päringu SQL Server 2014

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

Sümptomid

Oletame, et kasutate Microsoft SQL Server 2014. SQL Server 2014 versioonimärkmetes võivad ilmneda järgmised kaks probleemi.

  • Puuduvate registriandmete aruanne sisaldas mälu optimeeritud tabeli veerge valesti

    Probleem. Kui SQL Server 2014 tuvastab mälu optimeeritud tabelis päringu jaoks puuduva indeksi, teatab see puuduvast indeksist nii SHOWPLAN_XML kui ka puuduvatest indeksi DMV-dest (nt sys.dm_db_missing_index_details). Mõnel juhul sisaldavad puuduvad registri üksikasjad kaasatud veerge. Kuna kõik veerud kaasatakse kaudselt kõigisse mälu optimeeritud tabelite indeksitesse, pole lubatud otseselt määrata kaasatud veerge mälu optimeeritud indeksitega.

  • Puuduvate registriandmetega jäetakse välja puuduvad registrid, kui räsiregister on olemas, kuid ei sobi päringu jaoks

    Probleem. Kui teil on HASH indeks päringus viidatud mälu optimeeritud tabeli veergudes, kuid registrit ei saa päringu jaoks kasutada, SQL Server 2014 ei teata SHOWPLAN_XML ja DMV-i sys.dm_db_missing_index_details alati puuduvast indeksist.

    Kui päring sisaldab võrdsuse predikaate, mis hõlmavad indeksi võtmeveergude alamhulka või kui päring sisaldab ebavõrdsuse predikaate, mis sisaldavad indeksi võtmeveerge, ei saa HASH-indeksit olemasoleval kujul kasutada ja päringu tõhusaks täitmiseks on vaja teistsugust indeksit.

Põhjus

Probleemid ilmnevad seetõttu, et puudub registriloogika päringu optimeerijas ei erista traditsioonilisi klasterdamata indekseid kettapõhistes tabelites ja uusi registritüüpe mälu optimeeritud tabelites.

Lahendus

Probleemid lahendati esmalt järgmises SQL Server koondvärskenduses. 

SQL Server 2014 koondvärskendus 1 /en-us/help/2931693

Teave SQL Server koondvärskenduste kohta

Iga uus koondvärskendus SQL Server sisaldab kõiki kiirparandusi ja kõiki turbeparandusi, mis olid kaasatud eelmise koondvärskenduse. Vaadake uusimaid SQL Server koondvärskendusi.

      

Ajutine lahendus

Nende probleemide lahendamiseks kasutage järgmisi ajutisi lahendusi.

  • Lahendus probleemile: puuduvate registriandmete aruanne sisaldas mälu optimeeritud tabeli veerge valesti

    Ärge määrake include-klauslit koos mälu optimeeritud tabelite indeksitega.

  • Lahendus probleemile: puuduvate registriandmete korral puuduvad registrid ära, kui räsiregister on olemas, kuid ei sobi päringu jaoks

    Kui kasutate räsiindekseid, kontrollige päringuid ja päringuplaane, et teha kindlaks, kas päringutest võib kasu olla registrivõtme alamhulga indekseerimistoimingutest, või indeksiotsingu toimingud ebavõrdsuse predikaatide korral. Kui teil on vaja otsida registrivõtme alamhulka, kasutage registrit NONCLUSTERED või kasutage HASH-indeksit täpselt veergudes, mida soovite otsida. Kui teil on vaja otsida ebavõrdsuse predikaati, kasutage HASH-i asemel indeksit NONCLUSTERED.

Märkus Ajutised lahendused pärinevad versioonilt SQL Server 2014 versioonimärkmed

Olek

Microsoft on kinnitanud, et see on jaotises „Rakenduskoht“ loetletud Microsofti toodete korral esinev probleem.