Come smaltire tabelle di grandi dimensioni con il minimo impatto sul log shipping?

Dec 31 2020

Disporre di due tabelle correlate semi-grandi (284.6876.609 righe - 156.785.176 KB e 4.2628.162 righe - 2.212.464 KB) in un registro fornito db che deve essere eliminato o eliminato. Come posso smaltire queste due tabelle riducendo al minimo l'impatto sul log shipping?

Risposte

11 J.D. Dec 31 2020 at 21:08

Se si utilizzano DROPle tabelle, verrà generato un numero minimo di log perché non forza immediatamente la raccolta dei rifiuti sullo spazio utilizzato, ma in pratica rimuove semplicemente il riferimento. Allo stesso modo puoi ottenere lo stesso risultato con TRUNCATE(anche se penso che su tabelle di grandi dimensioni ci potrebbe essere più overhead di DROP, dovrò ricercarlo e aggiornare la mia risposta di conseguenza).

Questo è un articolo davvero valido che spiega in dettaglio perché TRUNCATEe le DROPoperazioni sono apparentemente veloci e generano registri minimi, il che è dovuto a una funzionalità di SQL Server chiamata rilascio differito .

In ogni caso, evita DELETEaltrimenti che genererà un sacco di registri che dovranno essere spediti e riapplicati nel database di destinazione.

Questa domanda StackOverflow ha più risposte con buone informazioni sulla rimozione efficiente dei dati da una tabella di grandi dimensioni (alcune potrebbero non essere specificamente correlate alla tua domanda, ma utili per riferimento futuro o altri utenti con problemi simili).