PATAISYMAS: neteisingi rezultatai gali atsirasti, kai vykdote užklausas lentelėse, kuriose yra indeksų, naudodami rikiavimo mažėjimo tvarką

Požymiai

Įdiegę "„SQL Server“ 2022" 4 kaupiamąjį naujinimą (CU4), galite gauti neteisingų rezultatų iš užklausų, kurios atitinka visas šias sąlygas:

  1. Turite indeksų, kurie aiškiai nurodo rikiavimo mažėjimo tvarką. Pavyzdys:

    CREATE NONCLUSTERED INDEX [nci_table_column1] ON [dbo].[table1] (column1 DESC)
    
  2. Užklausas vykdote lentelėse, kuriose yra šie indeksai. Šios užklausos nurodo rikiavimo tvarką, atitinkančią indeksų rikiavimo tvarką.

  3. Stulpelis "Sort" naudojamas užklausos taisyklės sąlygose WHERE IN arba keliose lygybės sąlygose. Pavyzdys:

    SELECT * FROM [dbo].[table1] WHERE column1 IN (1,2) ORDER BY column1 DESC
    SELECT * FROM [dbo].[table1] WHERE column1 = 1 or column1 = 2 ORDER BY column1 DESC
    

    Pastaba

    Sąlyga IN , turinti vieną reikšmę, neturi šios problemos.

Sprendimas

Ši problema išspręsta šiame "„SQL Server“" kaupiamajame naujinime:

5 kaupiamasis naujinimas, skirtas „SQL Server“ 2022

Apie kaupiamuosius „SQL Server“ naujinimus

Kiekviename naujame kaupiamajame "„SQL Server“" naujinime yra visos ankstesnės versijos karštosios pataisos ir saugos pataisos. Rekomenduojame įdiegti naujausią "„SQL Server“" versijos komponavimo versiją:

Naujausias "„SQL Server“ 2022" kaupiamasis naujinimas

Sprendimo būdas

Norėdami išspręsti šią problemą, pašalinkite „SQL Server“ 2022 CU4 arba įgalinkite sekimo vėliavėlę (TF) 13166, tada paleiskite DBCC FREEPROCCACHE.

Būsena

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

Nuorodos

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