2

我想知道为 SQL Server 2005/2008 设置“批量加载表锁定”的 sp_tableoption 的优缺点?我的场景是,我有 3 个线程在数据库上工作,一个查询线程,一个批量插入线程和一个删除线程。

这是 sp_tableoption 的 MSDN 相关链接,

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

提前谢谢,乔治

4

1 回答 1

1

只需在 BULK INSERT 中执行

例子

将锁定表的批量插入

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

该语句不会锁定表

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

使用 -h(用于提示)开关和“TABLOCK”的带标签块的 BCP

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

您可以从 SSIS 或 DTS 中进行批量插入,然后到那里的表锁

例如在转换数据任务下的 DTS 中查看选项选项卡,检查使用快速加载和表锁定 SSIS 有类似的东西

于 2009-06-16T16:27:53.287 回答