現在オフラインです。再接続するためにインターネットの接続を待っています

FIX テーブルまたは SQL Server 2008 SQL Server 2008 R2 で多数の行を挿入するとテーブルのロック エスカレーションされますされません。

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:2448971

現象
次のシナリオを検討してください。

  • 多テーブルまたは Microsoft SQL Server 2008 SQL Server 2008 R2 では、次のクエリのいずれかを使用して行します。
    • INSERT INTO <target_table> SELECT * FROM <target_table> WHERE <predicate>
    • SELECT * INTO <target_table> FROM <source_table> WHERE <predicate>
    メモ
    • は、 <target_table></target_table> プレース ホルダーは、実際のターゲット テーブルの名前を表します。
    • は、 <predicate></predicate> プレース ホルダーは、実際の述語を表します。
    • は、 <source_table></source_table> プレース ホルダーは、実際のソース テーブルを表します。
  • テーブルのロック エスカレーションのしきい値を超えています。
このシナリオでは、データベース エンジンには、テーブルのロック エスカレーションされません。
原因
この問題を発生、SQL Server の内部では、挿入操作によって生成されるすべての新しいロックはカウントされません。必要な場合にそのため、ロックのエスカレーションのしきい値実行可能性があります。
解決方法

SQL Server 2008年のサービス パックの情報

この問題を解決するには、SQL Server 2008年の最新の service pack を入手します。

詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
968382 SQL Server 2008年の最新の service pack を入手する方法

SQL Server 2008 R2 用のサービス パックの情報

この問題を解決するには、SQL Server 2008 R2 用の最新の service pack を入手します。詳細については、Knowledge Base の資料を参照するのには、次の資料番号をクリックしてください。
2527041SQL Server 2008年の R2 に最新の service pack を入手する方法
状況
マイクロソフトでは、この「対象」に記載されているマイクロソフト製品の問題として認識しています。
この問題は SQL Server 2008 SQL Server 2008 Service Pack 2 で修正されました。
この問題は SQL Server 2008 R2 の SQL Server 2008 R2 Service Pack 1 で修正されました。
詳細
ロックのエスカレーションの詳細については、以下の Microsoft TechNet web サイトを参照してください。
テーブルのロックがエスカレートされるかどうかを確認するには、以下の Transact SQL ステートメントを実行します。
USE tempdbGOCREATE TABLE x (i INT NOT NULL PRIMARY KEY)GOBEGIN TRANINSERT xSELECT TOP (40000)ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rFROM master..spt_values a, master..spt_values bORDER BYrSELECTCOUNT(*)FROM sys.dm_tran_locksWHERE request_session_id = @@SPID ROLLBACKGODROP TABLE x   
テーブルのロックがエスカレートされる場合は、最後の SELECT ステートメントのいずれかの値を返します 1 または 2.テーブルのロック エスカレーションが行われますしない場合は、最後の SELECT ステートメントのいずれかの値を返します 40,066 または 40,067.


警告: この記事は自動翻訳されています

プロパティ

文書番号:2448971 - 最終更新日: 07/07/2011 07:17:00 - リビジョン: 4.0

  • kbfix kbqfe kbexpertiseadvanced kbmt kbsurveynew KB2448971 KbMtja
フィードバック
varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" >