Compartir a través de


Ver los metadatos de una base de datos

Actualizado: 5 de diciembre de 2005

Puede ver las propiedades de una base de datos, un archivo, una partición y un grupo de archivos mediante una gran variedad de vistas de catálogo, funciones de sistema y procedimientos almacenados de sistema.

En la siguiente tabla se enumeran las vistas de catálogo, las funciones de sistema y los procedimientos almacenados de sistema que devuelven información acerca de las bases de datos, los archivos y los grupos de archivos.

Vistas Funciones Procedimientos almacenados y otros procedimientos

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 (sólo tempdb)

 

 

sys.dm_db_session_space_usage (sólo tempdb)

 

 

sys.dm_db_task_space_usage (sólo tempdb)

 

 

Algunas columnas de la vista de catálogo sys.databases y propiedades de la función DATABASEPROPERTYEX pueden devolver un valor NULO si la base de datos no está disponible. Por ejemplo, para devolver el nombre de intercalación de una base de datos, es preciso obtener acceso a la base de datos. Si la base de datos no está conectada, o la opción AUTO_CLOSE está establecida en ON, el nombre de la intercalación no se puede devolver.

Ejemplos

A. Usar vistas de catálogo del sistema para devolver información de la base de datos

En el siguiente ejemplo se utilizan las vistas de catálogo sys.partitions, sys.allocation_units, sys.objects y sys.indexes para devolver los números de partición y las unidades de asignación que ha utilizado cada tabla e índice de la base de datos.

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. Usar vistas de catálogo del sistema para devolver información sobre el tamaño de la base de datos

En los ejemplo siguientes se usa la vista de catálogo sys.database_files y la vista de administración dinámica sys.dm_db_file_space_usage para devolver información sobre el tamaño para la base de datos tempdb. La vista sys.dm_db_file_space_usage sólo se aplica a 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. Usar funciones del sistema

En el siguiente ejemplo se utiliza la función del sistema DATABASEPROPERTYEX para devolver el nombre de la intercalación predeterminada de la base de datos AdventureWorks.

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

Vea también

Conceptos

Configurar las opciones de la base de datos
Consultar las preguntas más frecuentes (P+F) del catálogo del sistema de SQL Server
Configuración de visibilidad de los metadatos

Otros recursos

Implementar bases de datos

Ayuda e información

Obtener ayuda sobre SQL Server 2005

Historial de cambios

Versión Historial

5 de diciembre de 2005

Contenido nuevo:
  • Se agregó la sección Ejemplos.
  • Se agregaron vistas de administración dinámica a tempdb.
Contenido actualizado:
  • Se corrigió el ejemplo B.