修正: インデックスを含むテーブルに対して降順で並べ替えを実行すると、誤った結果が発生する場合がある

現象

SQL Server 2022 累積更新プログラム 4 (CU4) をインストールすると、次のすべての条件を満たすクエリから誤った結果を受け取る場合があります。

  1. 降順を明示的に指定するインデックスがあります。 次に例を示します:

    CREATE NONCLUSTERED INDEX [nci_table_column1] ON [dbo].[table1] (column1 DESC)
    
  2. これらのインデックスを含むテーブルに対してクエリを実行します。 これらのクエリは、インデックスの並べ替え順序に一致する並べ替え順序を指定します。

  3. sort 列は、 WHERE IN 句または複数の等価句のクエリ述語で使用されます。 次に例を示します:

    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
    

    注

    値が 1 つの IN 句では、この問題はありません。

解決策

この問題は、次の SQL Server 用の累積的な更新プログラムで修正されています。

SQL Server 2022 の累積的な更新プログラム 5

SQL Server 用の累積的な更新プログラムについて

SQL Server 用の新しい累積的な更新プログラムには、以前のビルドであったすべての修正プログラムとセキュリティ修正プログラムが含まれます。 ご使用のバージョンの SQL Server 用の最新ビルドをインストールすることをお勧めします。

SQL Server 2022 の最新の累積的な更新プログラム

回避策

この問題を回避するには、SQL Server 2022 CU4 をアンインストールするか、トレース フラグ (TF) 13166 を有効にしてから、DBCC FREEPROCCACHE を実行します。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

参考資料

マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。