Mon instance de base de données Amazon Relational Database Service (Amazon RDS) sur SQL Server utilise plus d'espace que prévu. Quelle en est la cause et comment puis-je optimiser le stockage disque ?

Vous pouvez utiliser la métrique FreeStorageSpace d'Amazon CloudWatch pour surveiller l'espace de stockage disponible pour une instance de base de données RDS, mais cette métrique ne décrit pas comment le moteur SQL Server utilise le stockage disponible.

Pour collecter des informations détaillées sur l'utilisation d'espace disque physique pour une instance de base de données SQL Server, exécutez une requête semblable à la suivante :

SELECT D.name AS [database_name]
    , F.name AS [file_name]
    , F.type_desc AS [file_type]
    , CONVERT(decimal(10,2), F.size * 0.0078125) AS [size_on_disk_mb]
    , CONVERT(decimal(10,2), F.max_size * 0.0078125) AS [max_size_mb]
FROM sys.master_files AS F
INNER JOIN sys.databases AS D
    ON F.database_id = D.database_id;

Les fichiers qui portent la mention ROWS contiennent des données, tandis que ceux qui portent la mention LOGS représentent des transactions en cours d'exécution.

Assurez-vous de bien comprendre comment le moteur SQL Server utilise le stockage avant de commencer l'optimisation. Les catégories suivantes définissent, dans les grandes lignes, le type de fichier utilisant l'espace de stockage du moteur SQL Server :

Fichiers de base de données

L'espace de stockage total utilisé par une base de données individuelle se divise en ligne, index et espace libre dans la base de données active avec une requête semblable à la suivante :

EXEC sp_spaceused;

Fichiers journaux des transactions

Pour déterminer la quantité d'espace de stockage utilisée par les journaux de transactions, exécutez la requête suivante :

DBCC SQLPERF(LOGSPACE)

Il est normal que les journaux de transactions présentent de l'espace libre, mais vous pouvez retirer l'espace libre excessif en suivant les instructions de DBCC SHRINKFILE (Transact-SQL).

Vous pouvez réduire l'allocation excessive d'espace libre pour les journaux de transactions en utilisant les Options de groupes de fichiers et de fichiers ALTER DATABASE (Transact-SQL) afin de configurer les paramètres de croissance automatique pour la base de données.

Base de données temporaire (tempdb)

La croissance de tempdb de SQL Server est automatique. Si tempdb utilise de grandes quantités d'espace disponible, vous pouvez la réduire en suivant les instructions de Réduction de la base de données tempdb.

Index de base de données

Lorsqu'une portion significative de l'espace de stockage disponible est dédiée aux index, vous pouvez les régler afin de conserver un peu d'espace. Vous pouvez collecter des informations détaillées sur l'utilisation des index en exécutant l'affichage de gestion dynamique sys.dm_db_index_usage_stats (Transact-SQL), qui peut vous aider à évaluer les priorités en matière de réglages.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.

Date de publication : 30/10/2015

Date de mise à jour : 02/04/2018