Affichage des métadonnées de la base de données

Mis à jour : 5 décembre 2005

Vous pouvez afficher les propriétés d'une base de données, d'un fichier, d'une partition et d'un groupe de fichiers à l'aide de divers affichages catalogue, fonctions système et procédures stockées système.

Le tableau suivant énumère les affichages catalogue, fonctions système et procédures stockées système qui retournent des informations sur les bases de données, les fichiers et les groupes de fichiers.

Vues Fonctions Procédures stockées et autres instructions

sys.databases

DATABASE_PRINCIPAL_ID

sp_databases

sys.database_files

DATABASEPROPERTYEX

sp_helpdb

sys.data_spaces

DB_ID

sp_helpfile

sys.filegroups

DB_NAME

sp_helpfilegroup

sys.allocation_units

FILE_ID

sp_spaceused

sys.master_files

FILE_IDEX

DBCC SQLPERF

sys.partitions

FILE_NAME

 

sys.partition_functions

FILEGROUP_ID

 

sys.partition_parameters

FILEGROUP_NAME

 

sys.partition_range_values

FILEGROUPPROPERTY

 

sys.partition_schemes

FILEPROPERTY

 

sys.dm_db_partition_stats

fn_virtualfilestats

 

sys.dm_db_file_space_usage (tempdb uniquement)

 

 

sys.dm_db_session_space_usage (tempdb uniquement)

 

 

sys.dm_db_task_space_usage (tempdb uniquement)

 

 

Certaines colonnes de l'affichage catalogue sys.databases et certaines propriétés de la fonction DATABASEPROPERTYEX peuvent retourner une valeur NULL si la base de données spécifiée n'est pas disponible. Par exemple, pour retourner le nom de classement d'une base de données, celle-ci doit être accessible. Si la base de données n'est pas en ligne ou si l'option AUTO_CLOSE est activée (ON), le nom de classement ne peut pas être retourné.

Exemples

A. Utilisation d'affichages catalogue système pour retourner des informations sur la base de données

L'exemple suivant utilise les affichages catalogue sys.partitions, sys.allocation_units, sys.objects et sys.indexes pour retourner les numéros de partitions et les unités d'allocation utilisés par chaque table et index de la base de données.

USE AdventureWorks;
GO
SELECT SCHEMA_NAME(o.schema_id) AS schema_name,
    o.name AS table_name, 
    i.name AS index_name, 
    au.type_desc AS allocation_type, 
    au.data_pages AS pages_per_allocation_unit, 
    partition_number
FROM sys.allocation_units AS au
    JOIN sys.partitions AS p ON au.container_id = p.partition_id
    JOIN sys.objects AS o ON p.object_id = o.object_id
    JOIN sys.indexes AS i ON p.index_id = i.index_id 
        AND i.object_id = p.object_id
WHERE o.type_desc <> N'SYSTEM_TABLE'
ORDER BY table_name, p.index_id;

B. Utilisation d'affichages catalogue système pour retourner des informations sur la taille de la base de données

Les exemples suivants utilisent l'affichage catalogue sys.database_files et la vue de gestion dynamique sys.dm_db_file_space_usage pour retourner des informations de taille sur la base de données tempdb. La vue sys.dm_db_file_space_usage est applicable seulement à tempdb.

SELECT 
name AS FileName, 
size*1.0/128 AS FileSizeinMB,
'MaximumSizeinMB' = 
    CASE max_size 
       WHEN 0 THEN 'No growth is allowed.'
       WHEN -1 THEN 'Autogrowth is on.'
       WHEN 268435456 
          THEN 'Log file will grow to a maximum size of 2 TB.'
       ELSE CAST (max_size*1.0/128 AS nvarchar(30))
    END,
growth AS 'GrowthValue',
'GrowthIncrement' = 
    CASE 
       WHEN growth = 0 THEN 'File size is fixed and will not grow.'
       WHEN growth > 0 AND is_percent_growth = 0 
          THEN 'Growth value is in units of 8-KB pages.'
       ELSE 'Growth value is a percentage.'
    END
FROM tempdb.sys.database_files;
GO
USE tempdb;
GO
SELECT (SUM(unallocated_extent_page_count)*1.0/128) AS free_space_in_MB,
(SUM(version_store_reserved_page_count + 
    user_object_reserved_page_count +internal_object_reserved_page_count + 
    mixed_extent_page_count)*1.0/128) AS used_space_in_MB
FROM sys.dm_db_file_space_usage;

C. Utilisation des fonctions système

L'exemple suivant utilise la fonction système DATABASEPROPERTYEX pour retourner le nom du classement par défaut de la base de données AdventureWorks.

SELECT DATABASEPROPERTYEX('AdventureWorks', 'Collation');

Voir aussi

Concepts

Définition des options de base de données
Questions fréquentes sur l'interrogation des catalogues système de SQL Server
Configuration de la visibilité des métadonnées

Autres ressources

Implémentation des bases de données

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

5 décembre 2005

Nouveau contenu :
  • Ajout de la section « Exemples ».
  • Ajout des vues de gestion dynamique pour tempdb.
Contenu mis à jour :
  • Une correction a été apportée à l'exemple B.