De nombreuses options SQL Server peuvent être activées pour les bases de données, et l'une des plus mal comprises est la réduction automatique. Est-ce sûr? Si non pourquoi pas
De nombreuses options SQL Server peuvent être activées pour les bases de données, et l'une des plus mal comprises est la réduction automatique. Est-ce sûr? Si non pourquoi pas
(Au départ, je posais régulièrement une question, mais je trouvais la bonne méthode - merci BrentO)
Non jamais.
Je suis tombé sur cette question à plusieurs reprises sur ServerFault et je souhaite atteindre un large public avec de bons conseils. Si les gens désapprouvent cette façon de faire les choses, votez vers le bas et je retirerai cela volontiers.
La réduction automatique est un paramètre de base de données très courant à avoir activé. Cela semble être une bonne idée - supprimez l’espace supplémentaire de la base de données. Il existe de nombreux «administrateurs de base de données involontaires» (pensez à TFS, SharePoint, BizTalk ou simplement à un ancien serveur SQL Server ordinaire) qui ne savent peut-être pas que la réduction automatique est une mauvaise chose.
Chez Microsoft, j’étais propriétaire de SQL Server Storage Engine et j’ai essayé de supprimer la fonction de réduction automatique, mais elle devait rester pour des raisons de compatibilité ascendante.
Pourquoi le rétrécissement automatique est-il si grave?
La base de données est susceptible de croître à nouveau, alors pourquoi la réduire?
Il y a quelque temps, j’ai écrit un article de blog avec un exemple de script SQL qui montre les problèmes qu’il pose et explique un peu plus en détail. Voir Réduction automatique - désactivez-le! (pas de publicité ou de bric-à-brac comme ça sur mon blog). Ne confondez pas cela avec la réduction du fichier journal, ce qui est utile et nécessaire à l'occasion.
Rendez-vous donc service: examinez les paramètres de votre base de données et désactivez la réduction automatique. Vous ne devez pas non plus réduire vos projets de maintenance pour la même raison. Passez le mot à vos collègues.
Edit: Je devrais ajouter ceci, rappelé par la deuxième réponse - il existe une idée fausse commune selon laquelle l'interruption d'une opération de réduction peut entraîner une corruption. Non ça ne va pas. J'avais l'habitude de posséder le code de contraction dans SQL Server - il annule le déplacement de la page en cours s'il est interrompu.
J'espère que cela t'aides!