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

現象

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

  • クラスター化された列ストアインデックスを含むテーブルがあり、テーブルに多くの列 (数百) が含まれています。

  • これらの列のデータ (データ型) は、 varcharなどの高度に圧縮されたデータです。

  • このテーブルに対して select ステートメントを実行して、このテーブルの大きなサブセットまたはすべての列を選択します。

  • Selectステートメントには、その出力をごく少数の行に制限するwhere句があります (クエリは、選択度が高くなります)。

このシナリオでは、次のいずれかまたはすべての現象が発生する可能性があります。

  • 同時作業負荷 (このクエリとしてサーバー上で同時に実行される他のクエリ) では、パフォーマンスが低下したり、スループットが失われることがあります。

  • 断続的な CPU 使用率が断続的に表示されることがあります。

  • スケジューラモニター型のエントリをクエリsys.dm_os_ring_buffersして表示すると、このクエリの実行時にログに記録された "非生成スケジューラ" メッセージが断続的に見つかります。

  • エラーログに、待機中ではないスケジューラエラーが表示され、メモリダンプファイルが生成されることがあります。

解決方法

この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。

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

詳細情報

詳細の修正列セグメントを処理する (展開して修飾している行をスキャンする) ときに、特定のしきい値数の行が出力されたときに、他のワーカー/同時クエリの実行に対する CPU 使用率を "譲る" ために使用されます。 WHERE句が少数の行を作成するために高い選択度になった場合、このクエリを処理するワーカーは、他のユーザーが共同作業を処理するために協力して CPU を処理する前に、圧縮されていない多くのセグメント (行数が多いため) を処理します。 これにより、同時作業負荷の CPU 使用量とスループットの低下が断続的になります。 修正プログラムによって、このような列ストアクエリの CPU 共有アルゴリズムが最適化され、改善されます。

参照情報

ソフトウェアの更新を説明するために Microsoft が使用する 用語 について説明します。

ヘルプを表示

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

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

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

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

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

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

×