Réduire un fichierShrink a File

Cette rubrique explique comment réduire un fichier de données ou un fichier journal dans SQL Server 2016SQL Server 2016 à l'aide de SQL Server Management StudioSQL Server Management Studio ou de Transact-SQLTransact-SQL.This topic describes how to shrink a data or log file in SQL Server 2016SQL Server 2016 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-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.Shrinking data files recovers space by moving pages of data from the end of the file to unoccupied space closer to the front of the file. Lorsqu'une quantité d'espace libre suffisante est créée à la fin du fichier, des pages de données à la fin du fichier peuvent être désallouées et retournées au système de fichiers.When enough free space is created at the end of the file, data pages at end of the file can deallocated and returned to the file system.

Dans cette rubriqueIn This Topic

Avant de commencer Before You Begin

Limitations et restrictions Limitations and Restrictions

  • La taille du fichier de données primaire ne peut pas être inférieure à celle du fichier primaire de la base de données model.The primary data file cannot be made smaller than the size of the primary file in the model database.

Recommandations Recommendations

  • 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.Data that is moved to shrink a file can be scattered to any available location in the file. Cela provoque la fragmentation de l'index et peut ralentir les performances des requêtes qui recherchent une plage de l'index.This causes index fragmentation and can slow the performance of queries that search a range of the index. Pour éliminer la fragmentation, reconstruisez les index dans le fichier après réduction.To eliminate the fragmentation, consider rebuilding the indexes on the file after shrinking.

Sécurité Security

Autorisations Permissions

Nécessite l’appartenance au rôle de serveur fixe sysadmin ou au rôle de base de données fixe db_owner .Requires membership in the sysadmin fixed server role or the db_owner fixed database role.

Utilisation de SQL Server Management Studio Using SQL Server Management Studio

Pour réduire un fichier de données ou un fichier journalTo shrink a data or log file

  1. Dans l'Explorateur d'objets, connectez-vous à une instance du Moteur de base de données SQL ServerSQL Server Database Engine et développez-la.In Object Explorer, connect to an instance of the Moteur de base de données SQL ServerSQL Server Database Engine and then expand that instance.

  2. Développez Bases de données , puis cliquez avec le bouton droit sur la base de données à réduire.Expand Databases and then right-click the database that you want to shrink.

  3. Dans le menu Tâches, pointez sur Réduire, puis cliquez sur Fichiers.Point to Tasks, point to Shrink, and then click Files.

    Base de donnéesDatabase
    Affiche le nom de la base de données sélectionnée.Displays the name of the selected database.

    Type de fichierFile type
    Sélectionnez le type du fichier.Select the file type for the file. Les choix possibles sont Données et Journal .The available choices are Data and Log files. La sélection par défaut est Données.The default selection is Data. La sélection d'un autre type de groupe de fichiers modifie en conséquence les sélections des autres champs.Selecting a different filegroup type changes the selections in the other fields accordingly.

    Groupe de fichiersFilegroup
    Sélectionnez un groupe de fichiers dans la liste des groupes de fichiers associés au Type de fichier sélectionné auparavant.Select a filegroup from the list of Filegroups associated with the selected File type above. La sélection d'un autre groupe de fichiers modifie en conséquence les sélections des autres champs.Selecting a different filegroup changes the selections in the other fields accordingly.

    Nom de fichierFile name
    Sélectionnez un fichier dans la liste des fichiers disponibles pour le groupe de fichiers et le type de fichier choisis.Select a file from the list of available files of the selected filegroup and file type.

    EmplacementLocation
    Affiche le chemin d'accès complet au fichier actuellement sélectionné.Displays the full path to the currently selected file. Le chemin d'accès n'est pas modifiable, mais il peut être copié dans le Presse-papiers.The path is not editable, but it can be copied to the clipboard.

    Espace actuellement allouéCurrently allocated space
    Pour les fichiers de données, affiche l'espace actuellement alloué.For data files, displays the current allocated space. Pour les fichiers journaux, ce champ affiche l'espace actuellement alloué qui est calculé à partir de la sortie de DBCC SQLPERF(LOGSPACE).For log files, displays the current allocated space computed from the output of DBCC SQLPERF(LOGSPACE).

    Espace libre disponibleAvailable free space
    Pour les fichiers de données, ce champ affiche l'espace libre actuellement disponible qui est calculé à partir de la sortie de DBCC SHOWFILESTATS(fileid).For data files, displays the current available free space computed from the output of DBCC SHOWFILESTATS(fileid). Pour les fichiers journaux, ce champ affiche l'espace libre actuellement disponible qui est calculé à partir de la sortie de DBCC SQLPERF(LOGSPACE).For log files, displays the current available free space computed from the output of DBCC SQLPERF(LOGSPACE).

    Libérer l'espace inutiliséRelease unused space
    Tout espace inutilisé dans les fichiers est libéré pour le système d'exploitation et le fichier est réduit à la dernière extension allouée, ce qui en réduit la taille sans toucher aux données.Cause any unused space in the files to be released to the operating system and shrink the file to the last allocated extent, reducing the file size without moving any data. Aucune tentative de réaffectation des lignes aux pages non allouées n'est entreprise.No attempt is made to relocate rows to unallocated pages.

    Réorganiser les pages avant de libérer l'espace inutiliséReorganize pages before releasing unused space
    Équivaut à exécuter DBCC SHRINKFILE en spécifiant la taille du fichier cible.Equivalent to executing DBCC SHRINKFILE specifying the target file size. Lorsque cette option est activée, l'utilisateur doit spécifier la taille du fichier cible dans la zone Réduire le fichier à .When this option is selected, the user must specify a target file size in the Shrink file to box.

    Réduire le fichier àShrink file to
    Spécifie la taille du fichier cible pour l'opération de réduction.Specifies the target file size for the shrink operation. La taille ne peut pas être inférieure à l'espace actuellement alloué ou supérieure à l'extension totale qui est allouée au fichier.The size cannot be less than the current allocated space or more than the total extents allocated to the file. Lorsqu'une valeur supérieure à la valeur minimale ou maximale est entrée, la valeur min ou max est rétablie lorsqu'un autre élément est sélectionné ou que vous cliquez sur un bouton de la barre d'outils.Entering a value beyond the minimum or the maximum will revert to the min or the max once the focus is changed or when any of the buttons on the toolbar are clicked.

    Vider le fichier en effectuant une migration des données vers d'autres fichiers dans le même groupe de fichiersEmpty file by migrating the data to other files in the same filegroup
    Migre toutes les données du fichier spécifié.Migrate all data from the specified file. Cette option permet au fichier d'être supprimé à l'aide de l'instruction ALTER DATABASE.This option allows the file to be dropped using the ALTER DATABASE statement. Elle équivaut à exécuter DBCC SHRINKFILE avec l'option EMPTYFILE.This option is equivalent to executing DBCC SHRINKFILE with the EMPTYFILE option.

  4. Sélectionnez le type et le nom du fichier.Select the file type and file name.

  5. Éventuellement, activez la case à cocher Libérer l'espace inutilisé .Optionally, select the Release unused space check box.

    En activant cette case d'option, tout espace inutilisé dans les fichiers de données est libéré vers le système d'exploitation et le fichier est réduit à la dernière étendue allouée,Selecting this option causes any unused space in the file to be released to the operating system and shrinks the file to the last allocated extent. sans déplacement de données.This reduces the file size without moving any data.

  6. Éventuellement, activez la case d'option Réorganiser les pages avant de libérer de l'espace inutilisé .Optionally, select the Reorganize files before releasing unused space check box. Si cette case d'option est activée, la valeur Réduire le fichier à doit être spécifiée.If this is selected, the Shrink file to value must be specified. Cette option est désactivée par défaut.By default, the option is cleared.

    En activant cette case d'option, tout espace inutilisé dans les fichiers de données est libéré vers le système d'exploitation et, dans la mesure du possible, les lignes sont déplacées dans des pages non allouées.Selecting this option causes any unused space in the file to be released to the operating system and tries to relocate rows to unallocated pages.

  7. Éventuellement, entrez le pourcentage maximal d'espace libre à laisser dans le fichier de base de données après la réduction de la base de données.Optionally, enter the maximum percentage of free space to be left in the database file after the database has been shrunk. Les valeurs autorisées sont comprises entre 0 et 99.Permissible values are between 0 and 99. Cette option est disponible uniquement lorsque Réorganiser les pages avant de libérer de l'espace inutilisé est activée.This option is only available when Reorganize files before releasing unused space is enabled.

  8. Éventuellement, activez la case d'option Vider le fichier en effectuant une migration des données vers d'autres fichiers dans le même groupe de fichiers .Optionally, select the Empty file by migrating the data to other files in the same filegroup check box.

    L'activation de cette case d'option déplace toutes les données du fichier spécifié dans d'autres fichiers du groupe de fichiers.Selecting this option moves all data from the specified file to other files in the filegroup. Le fichier vide peut alors être supprimé.The empty file can then be deleted. Cette case d'option revient à exécuter DBCC SHRINKFILE avec l'option EMPTYFILE.This option is the same as executing DBCC SHRINKFILE with the EMPTYFILE option.

  9. Cliquez sur OK.Click OK.

Utilisation de Transact-SQL Using Transact-SQL

Pour réduire un fichier de données ou un fichier journalTo shrink a data or log file

  1. Connectez-vous au Moteur de base de donnéesDatabase Engine.Connect to the Moteur de base de donnéesDatabase Engine.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.From the Standard bar, click New Query.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.Copy and paste the following example into the query window and click Execute. Cet exemple utilise DBCC SHRINKFILE pour réduire la taille d'un fichier de données nommé DataFile1 dans la base de données UserDB à 7 Mo.This example uses DBCC SHRINKFILE to shrink the size of a data file named DataFile1 in the UserDB database to 7 MB.

    USE UserDB;
    GO
    DBCC SHRINKFILE (DataFile1, 7);
    GO
    

Voir aussiSee Also

DBCC SHRINKDATABASE (Transact-SQL) DBCC SHRINKDATABASE (Transact-SQL)
Réduire une base de données Shrink a Database
Supprimer des fichiers de données ou des fichiers journaux d'une base de données Delete Data or Log Files from a Database
sys.databases (Transact-SQL) sys.databases (Transact-SQL)
sys.database_files (Transact-SQL) sys.database_files (Transact-SQL)