Attention, ceci n’est pas une bonne pratique, il s’agit de cas particuliers qu’on peut rencontrer dans des applications 100% décisionnelles.
Le script suivant permet d’effectuer une réduction (Shrink) de toutes nos bases utilisateurs dont le recovery_model est différent de 1 (Full). Cela est bien sûr à minima à faire suivre d’une reconstruction / réorganisation de vos indexes pour limiter l’impact de la fragmentation de ceux-ci. Bref si vous avez des problèmes de place, cela peut aider, mais ne doit en aucun cas être systématique.
DECLARE @DynSQL VARCHAR(MAX)
SELECT @DynSQL = ( SELECT CONCAT('DBCC SHRINKDATABASE(N''', S.name,''')', CHAR(10)) FROM sys.databases S WHERE database_id > 5 AND recovery_model <> 1 FOR XML PATH('') ) --PRINT @DynSQL EXEC sp_sqlexec @DynSQL
2 Comments
Hello,
Ce n’est pas un best practice, mais ça reste valable quand on te demande de remonter des backup de prod en dev et que ton espace de stockage est limité si tu vois ce que je veux dire 😉
Héhé oui, il existe en effet plein de situations ou cela aide, il faut juste se rappeler à quoi servent les Logs pour éviter les bêtises.