2009-06-16 5 views
2

SQL Server 2005/2008の「バルクロード時のテーブルロック」のsp_tableoptionを設定する際の長所と短所を知りたいですか?私のシナリオは、データベース上で3つのスレッド、1つのクエリスレッド、1つのバルク挿入スレッド、および1つの削除スレッドがあります。ここでSQL Serverのsp_tableoption

は、sp_tableoptionのために事前に

http://msdn.microsoft.com/en-us/library/ms173530.aspx

おかげで、 ジョージ

答えて

1

だけBULKのINSERTでそれを行う代わりに、

一括MSDN関連のリンクですテーブルをロックする挿入する

BULK INSERT Northwind.dbo.[ORDER Details] 
    FROM 'f:\orders\lineitem.tbl' 
    WITH 
    (
     FIELDTERMINATOR = '|', 
     ROWTERMINATOR = ':\n', 
     FIRE_TRIGGERS, 
     TABLOCK --this is it 
    ) 

この文を使用すると、一括挿入を行うことができ、スイッチと "TABLOCK"(ヒントのため)

bcp pubs..authors2 in authors.txt -c -t, -Sservername -Usa -Ppass -h "TABLOCK" 

を-hを使用してTABLOCKでテーブルに

BULK INSERT Northwind.dbo.[ORDER Details] 
     FROM 'f:\orders\lineitem.tbl' 
     WITH 
     (
      FIELDTERMINATOR = '|', 
      ROWTERMINATOR = ':\n', 
      FIRE_TRIGGERS 
     ) 

BCPをロックしません。 SSISまたはDTS内からテーブルロックへ

たとえばDTS変換データタスクのオプションタブを見て、テーブルロック SSISに類似のものがあります

+0

私は混乱しています。あなたは言いました - "代わりにBULK INSERTでそれをやってください"と言っていましたが、一括挿入SQ​​L文ではどのようなテーブルオプションも設定していませんでしたか?どうぞお分かりですか? – George2

+1

最初のクエリでTABLOCK引数を使用し、2番目のクエリで-h "TABLOCK"を使用します。 – SQLMenace

+1

TABLOCKを使用してBULK INSERのクエリを2つ与えることで回答を更新しました。 – SQLMenace