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

現象

SQL Server 2016 で [インデックスの作成] や [切り捨て] などの DDL 操作を実行すると、同じデータベースで実行されている別の DDL トランザクションがある場合、操作がブロックされることがあります。

解決方法

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

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

詳細情報

DDL は、テーブルまたはインデックスを作成または削除するときに、テーブルまたはインデックスの行セット id を sysrowsetsから挿入または削除する必要があります。そのためには、行レベルの X lock をエントリに保持する必要があります。 トランザクション内でこれを実行すると、トランザクションの間、X ロックが保持されます。Tuple ムーバーが、削除できるバッファーを検出すると、既存のテーブルまたはインデックスを検出するために sysrowsets セット を反復処理する必要があります。 Sysrowsetsいる行セットから各行を読み取るには、現在読み取られているエントリについて、Row level S ロックを保持する必要があります。 検出プロセスは、タプルムーバが処理できる最初の行セットを検出すると停止します。 この時点では、組ムーバは、削除バッファーをフラッシュする実際の作業を実行しますが、検出された行セットが有効であることを確認するために、作業が完了するまで、探索プロセス中に評価されたすべての行セットに対して SCH ロックを保持します。Sysrowsets は、rowset id によって注文されるため、Tuple ムーバでは、操作が実行されていない複数の既存の行セットをスキャンしていますが、現在は、行に X ロックを保持している長時間実行されているトランザクションによって変更されているため、これは、タプルのロックを取得できない この時点で、行セット id の変更を含む DDLs は、組ムーバの SCH ロックの背後でブロックされます。

状態

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

関連情報

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

ヘルプを表示

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

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

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

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

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

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

×