En algunas circunstancias, hacer un INSERT INTO <tablename> (WITH TABLOCK)
será más rápido debido a un registro mínimo. Esas circunstancias incluyen tener la base de datos en el BULK_LOGGED
modelo de recuperación.
¿Hay algún otro beneficio potencial de rendimiento al usar WITH TABLOCK
en una INSERT
tabla vacía cuando la base de datos ( tempdb ) está usando el SIMPLE
modelo de recuperación?
Estoy trabajando con SQL Server 2012 Standard Edition.
Mi caso de uso es para crear y luego llenar inmediatamente una tabla temporal dentro de un procedimiento almacenado usando un INSERT...SELECT
, que podría contener hasta unos pocos millones de filas. Intento evitar ese tipo de abuso de tempdb , pero a veces es necesario.
Estoy tratando de construir un caso para requerir TABLOCK
. No parece que vaya a doler nada, y podría tener un beneficio. Estoy tratando de averiguar si hay suficiente beneficio potencial para agregarlo en cualquier parte de nuestra base de código, donde estoy seguro de que no hay otro proceso que quiera escribir en la tabla.
Por lo general, estoy insertando en una tabla temporal local recién creada con un PK agrupado, pero a veces uso un montón.