In alcune circostanze, fare un INSERT INTO <tablename> (WITH TABLOCK)
sarà più veloce a causa della registrazione minima. Tali circostanze includono la presenza del database nel BULK_LOGGED
modello di recupero.
Esistono altri potenziali vantaggi in termini di prestazioni nell'uso WITH TABLOCK
su una INSERT
tabella vuota quando il database ( tempdb ) utilizza il SIMPLE
modello di recupero?
Sto lavorando con SQL Server 2012 Standard Edition.
Il mio caso d'uso è la creazione e il popolamento immediato di una tabella temporanea all'interno di una procedura memorizzata utilizzando un INSERT...SELECT
, che può contenere fino a qualche milione di righe. Cerco di evitare quel tipo di abuso di tempdb , ma a volte è necessario.
Sto cercando di costruire un caso da richiedere TABLOCK
. Non sembra farebbe male a nulla e potrebbe avere un vantaggio. Sto cercando di capire se ci sono abbastanza potenziali benefici per aggiungerlo ovunque nella nostra base di codice, dove sono sicuro che non ci sono altri processi che vogliono scrivere sulla tabella.
Di solito inserisco una tabella temporanea locale appena creata con un PK in cluster, ma a volte uso un heap.