Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique explique comment réduire une base de données à l’aide de l’objet dans SQL Server 2014 à l’aide de SQL Server Management Studio ou de Transact-SQL.
La réduction des fichiers de données permet de récupérer de l'espace en déplaçant des pages de données de la fin du fichier vers un espace inoccupé plus proche de l'avant du fichier. Lorsque suffisamment d’espace libre est créé à la fin du fichier, les pages de données à la fin du fichier peuvent être libérées et retournées au système de fichiers.
Avant de commencer
Limitations et restrictions
La base de données ne peut pas être réduite à la taille minimale de la base de données. La taille minimale est la taille spécifiée lorsque la base de données a été créée à l’origine, ou la dernière taille explicite définie à l’aide d’une opération de modification de taille de fichier, telle que DBCC SHRINKFILE. Par exemple, si une base de données a été créée à l’origine avec une taille de 10 Mo et a augmenté de 100 Mo, la plus petite taille de la base de données peut être réduite à 10 Mo, même si toutes les données de la base de données ont été supprimées.
Vous ne pouvez pas réduire une base de données pendant la sauvegarde de la base de données. À l’inverse, vous ne pouvez pas sauvegarder une base de données pendant qu’une opération de réduction sur la base de données est en cours.
DBCC SHRINKDATABASE échoue lorsqu’il rencontre un index columnstore optimisé en mémoire xVelocity. Le travail terminé avant d'accéder à l'index columnstore aboutit, ce qui peut réduire la taille de la base de données. Pour terminer DBCC SHRINKDATABASE, désactivez tous les index columnstore avant d’exécuter DBCC SHRINKDATABASE, puis régénérez les index columnstore.
Recommandations
Pour afficher la quantité actuelle d’espace libre (non alloué) dans la base de données. Pour plus d’informations, consultez Afficher les informations d’espace de données et de journal pour une base de données
Prenez en compte les informations suivantes lorsque vous envisagez de réduire une base de données :
Une opération de réduction est la plus efficace après une opération qui crée beaucoup d’espace inutilisé, telle qu'une opération de troncature de table ou de suppression de table.
Un certain espace libre doit exister pour les opérations quotidiennes courantes pour la plupart des bases de données. Si vous réduisez une base de données à plusieurs reprises et notez que la taille de la base de données augmente à nouveau, cela indique que l’espace qui a été réduit est requis pour les opérations régulières. Dans ce cas, la réduction répétée de la base de données est une opération perdue.
Une opération de réduction ne conserve pas l’état de fragmentation des index dans la base de données et augmente généralement la fragmentation à un degré. Il s’agit d’une autre raison de ne pas réduire à plusieurs reprises la base de données.
Sauf si vous avez une exigence spécifique, ne définissez pas l’option de base de données AUTO_SHRINK sur ON.
Sécurité
Autorisations
Nécessite l’appartenance au rôle de serveur fixe sysadmin ou au rôle de base de données fixe db_owner .
Utilisation de SQL Server Management Studio
Pour réduire une base de données
Dans 'Explorateur d’objets, connectez-vous à une instance du moteur de base de données SQL Server, puis développez cette instance.
Développez Bases de données, puis cliquez avec le bouton droit sur la base de données que vous souhaitez réduire.
Pointez sur Tâches, pointez sur Réduire, puis cliquez sur Base de données.
Base de données
Affiche le nom de la base de données sélectionnée.Espace alloué actuel
Affiche l’espace total utilisé et inutilisé pour la base de données sélectionnée.Espace libre disponible
Affiche la somme de l’espace libre dans les fichiers journaux et de données de la base de données sélectionnée.Réorganiser les fichiers avant de libérer de l’espace inutilisé
La sélection de cette option équivaut à exécuter DBCC SHRINKDATABASE en spécifiant une option de pourcentage cible. L’effacement de cette option équivaut à exécuter DBCC SHRINKDATABASE avec l’option TRUNCATEONLY. Par défaut, cette option n’est pas sélectionnée lorsque la boîte de dialogue est ouverte. Si cette option est sélectionnée, l’utilisateur doit spécifier une option de pourcentage cible.Espace libre maximal dans les fichiers après la réduction
Entrez le pourcentage maximal d’espace libre à laisser dans les fichiers de base de données une fois la base de données réduite. Les valeurs autorisées sont comprises entre 0 et 99.Cliquez sur OK.
Utilisation de Transact-SQL
Pour réduire une base de données
Connectez-vous au moteur de base de données.
Dans la barre d'outils standard, cliquez sur Nouvelle requête.
Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter. Cet exemple utilise DBCC SHRINKDATABASE pour réduire la taille des fichiers de données et des fichiers journaux de la
UserDBbase de données et permettre10un pourcentage d’espace libre dans la base de données.
DBCC SHRINKDATABASE (UserDB, 10);
GO
Suivi : après avoir réduit une base de données
Les données qui sont déplacées pour réduire un fichier peuvent être dispersées à n'importe quel emplacement disponible dans le fichier. Cela provoque la fragmentation de l'index et peut ralentir les performances des requêtes qui recherchent une plage de l'index. Pour éliminer la fragmentation, reconstruisez les index dans le fichier après réduction.
Voir aussi
Réduire un fichier
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)
DBCC (Transact-SQL)
DBCC SHRINKFILE (Transact-SQL)
Groupes de fichiers et fichiers de base de données