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.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
Ayuda e información
Obtener ayuda sobre SQL Server 2005
Historial de cambios
Versión | Historial |
---|---|
5 de diciembre de 2005 |
|