在某些情况下,INSERT INTO <tablename> (WITH TABLOCK)
由于记录最少,因此执行操作会更快。这些情况包括将数据库包含在BULK_LOGGED
恢复模型中。
当数据库(tempdb)使用恢复模型时,在空表上使用WITH TABLOCK
on 还有其他潜在的性能优势吗?INSERT
SIMPLE
我正在使用SQL Server 2012 Standard Edition。
我的用例是使用来创建然后立即在存储过程中填充临时表INSERT...SELECT
,该表可能包含多达几百万行。我尝试避免这种tempdb滥用,但是有时是需要的。
我正在尝试建立一个需要的案例TABLOCK
。似乎它不会伤害任何东西,并且可能会有好处。我试图弄清楚是否有足够的潜在优势可以将其添加到我们整个代码库中的任何位置,我敢肯定没有其他进程要写到表中。
我通常将其插入具有群集PK的新创建的本地临时表中,但有时会使用堆。