メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

次のような状況で問題が発生します。

  • Microsoft SQL Server 2016 では、互換性レベルが 130 に設定されているデータベースを使用します。

  • 列ストア インデックスと行ストア インデックスまたはヒープにアクセスし、フィルター述語 (WHERE 句) を含むクエリを実行します。

このシナリオでは、SQL Serverは、フィルター述語をデータ ソース演算子 (テーブルまたはインデックス スキャンまたはシーク) に近づけることはできません。 これにより、最適でないクエリ パフォーマンスが発生する可能性があります。


さらに、クエリがフィルター処理されたデータに依存する式 (型変換など) を使用する場合 (たとえば、char テーブル列は int に変換されますが、値のサブセットにのみ有効な int 表現が含まれ、このサブセットはフィルター述語によって識別されます)、クエリは次のいずれかのデータ変換エラーで失敗する可能性があります。

メッセージ 245、レベル 16、状態 1、20
行目 varchar 値 '0.5' をデータ型 int に変換するときに変換に失敗しました。

メッセージ 8114、レベル 16、状態 5、行 34
データ型 varchar を bigint に変換中にエラーが発生しました。

解決方法

この問題は、SQL Server:

SQL Server 2016 SP1 の累積的な更新プログラム 2 の次の累積的な更新プログラムで修正されています       

                注 この修正プログラムを有効にするには、クエリ オプティマイザー修正プログラムを有効にする必要があります。

クエリ オプティマイザー修正プログラムを有効にするには、トレース フラグ 4199、データベース スコープ構成設定 QUERY_OPTIMIZER_HOTFIXES=ON (SQL Server 2016 以降で利用可能)、USE_HINT またはクエリ オプション 'ENABLE_QUERY_OPTIMIZER_HOTFIXES' (SQL Server 2016 SP1 以降で使用可能) のいずれかを使用します。

SQL Serverの各新しい累積的な更新プログラムには、すべての修正プログラムと、以前の累積的な更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムを確認する:

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

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

関連情報

Microsoft がソフトウェア更新プログラムの説明に使用する 用語について説明します。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×