Sob algumas circunstâncias, fazer um INSERT INTO <tablename> (WITH TABLOCK)
será mais rápido devido ao registro mínimo. Essas circunstâncias incluem ter o banco de dados no BULK_LOGGED
modelo de recuperação.
Existe algum outro benefício potencial de desempenho para usar WITH TABLOCK
em uma INSERT
tabela vazia quando o banco de dados ( tempdb ) estiver usando o SIMPLE
modelo de recuperação?
Estou trabalhando com o SQL Server 2012 Standard Edition.
Meu caso de uso é para criar e preencher imediatamente uma tabela temporária em um procedimento armazenado usando um INSERT...SELECT
, que pode conter até alguns milhões de linhas. Eu tento evitar esse tipo de abuso de tempdb , mas às vezes é necessário.
Estou tentando construir um caso para exigir TABLOCK
. Parece que não faria mal a nada e pode ter um benefício. Estou tentando descobrir se existe um benefício potencial suficiente para adicioná-lo em toda a nossa base de códigos, onde tenho certeza de que não há outro processo que queira gravar na tabela.
Normalmente, estou inserindo uma tabela temporária local recém-criada com uma PK em cluster, mas às vezes uso um heap.