KB4316948 – PATAISA: prieigos pažeidimas, kai kompiliuojate užklausą ir histogramos pakeitimas įgalinamas naudojant numatytąjį kardinalumo įvertinimą 2016 ir 2017 „SQL Server“

Taikoma
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Požymiai

Apsvarstykite šį scenarijų:

  • Bandote vykdyti užklausą naudodami numatytąjį kardinalumo įvertinimą , kai įgalintas histogramos keitimas.
  • Užklausoje yra reiškinių stulpelyje, kuris naudojamas vienoje iš taisyklės sąlygų.

Tokiu atveju įvyksta prieigos pažeidimas. Be to, gaunate šį klaidos pranešimą:

Pastaba

Pranešimas 596, 21 lygis, 1 būsena, eilutės eilutės numeris
Negalima tęsti vykdymo, nes seansas yra nužudymo būsenos.
Pranešimas 0, 20 lygis, būsena 0, eilutės numeris
Dabartinėje komandoje įvyko rimta klaida.  Rezultatus, jei tokių yra, reikia atmesti.

         Atkreipkite dėmesį Histogramos keitimas gali būti įgalintas naudojant užklausos parinktį USE HINT('ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS') arba sekimo vėliavėlę 4139.

Sprendimas

Ši problema išspręsta šiais "„SQL Server“" naujinimais:

8 kaupiamasis naujinimas, skirtas „SQL Server“ 2017

5 kaupiamasis naujinimas, skirtas „SQL Server“ 2016 2 pakeitimų paketui

Apie "„SQL Server“" komponavimo versijas

Kiekvienoje naujoje "„SQL Server“" versijoje yra visos karštosios pataisos ir saugos pataisos, kurios buvo ankstesnėje komponavimo versijoje. Rekomenduojame įdiegti naujausią "„SQL Server“" versijos komponavimo versiją:

Naujausia "„SQL Server“ 2017" versija

Naujausias kaupiamasis naujinimas, skirtas „SQL Server“ 2016

Būsena

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

Nuorodos

DBCC TRACEON - Sekimo vėliavėlės (Transact-SQL)

Sužinokite daugiau apie standartinius terminus , kuriuos "„Microsoft“" naudoja apibūdindama programinės įrangos naujinimus.