Comment se débarrasser des grandes tables avec le moins d'impact sur l'expédition des grumes?
Avoir deux tables associées semi-volumineuses (284,6876,609 lignes - 156,785,176 Ko et 4,2628,162 lignes - 2,212,464 KB) dans un journal livré db qui doit être purgé ou supprimé. Comment puis-je disposer de ces deux tables tout en minimisant l'impact sur l'expédition des journaux?
Réponses
Si vous DROP
utilisez les tables, cela entraînera la génération de journaux minimaux car cela ne force pas immédiatement la récupération de place sur l'espace utilisé, il supprime simplement la référence. De même, vous pouvez obtenir le même résultat avec TRUNCATE
(bien que je pense que sur les grandes tables, il pourrait y avoir plus de frais généraux que DROP
, je devrai faire des recherches et mettre à jour ma réponse en conséquence).
C'est un très bon article qui détaille pourquoi TRUNCATE
et les DROP
opérations sont incroyablement rapides et génèrent des journaux minimes, ce qui est dû à une fonctionnalité de SQL Server appelée abandon différé .
Quoi qu'il en soit, évitez DELETE
sinon cela générera une tonne de journaux qui devront être expédiés et réappliqués à la base de données cible.
Cette question StackOverflow a plusieurs réponses avec de bonnes informations sur la suppression efficace des données d'une grande table (certaines peuvent ne pas être spécifiquement liées à votre question, mais bonnes pour une référence future ou d'autres utilisateurs avec des problèmes similaires).