Visualizzazione dei metadati dei database
Data aggiornamento: 5 dicembre 2005
Per visualizzare le proprietà dei database, dei file, delle partizioni e dei filegroup è possibile utilizzare una vasta gamma di viste del catalogo, funzioni di sistema e stored procedure di sistema.
Nella tabella seguente sono elencate le viste del catalogo, le funzioni di sistema e le stored procedure di sistema che restituiscono informazioni sui database, i file e i filegroup.
Viste | Funzioni | Stored procedure e altre istruzioni |
---|---|---|
|
||
|
||
|
||
|
||
|
||
|
||
sys.dm_db_file_space_usage (solo tempdb) |
|
|
sys.dm_db_session_space_usage (solo tempdb) |
|
|
sys.dm_db_task_space_usage (solo tempdb) |
|
|
È possibile che alcune colonne della vista del catalogo sys.databases e le proprietà della funzione DATABASEPROPERTYEX restituiscano un valore NULL se il database specificato non è disponibile. Ad esempio, per fare in modo che venga restituito il nome delle regole di confronto del database, è necessario accedere al database. Se il database non è in linea o se l'opzione AUTO_CLOSE è impostata su ON, il nome delle regole di confronto non verrà restituito.
Esempi
A. Utilizzo delle viste del catalogo di sistema per recuperare informazioni sul database
Nell'esempio seguente vengono utilizzate le viste del catalogo sys.partitions
, sys.allocation_units
, sys.objects
e sys.indexes
per recuperare i numeri di partizione e le unità di allocazione utilizzati in ogni tabella e indice del database.
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. Utilizzo delle viste del catalogo di sistema per recuperare informazioni sulle dimensioni del database
Negli esempi seguenti vengono utilizzate la vista del catalogo sys.database
_files
e la vista a gestione dinamica sys.dm
_db
_file
_space
_usage
per restituire le informazioni sulle dimensioni del database tempdb. La vista sys.dm
_db
_file
_space
_usage
è applicabile solo 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. Utilizzo delle funzioni di sistema
Nell'esempio seguente viene utilizzata la funzione di sistema DATABASEPROPERTYEX per recuperare il nome delle regole di confronto predefinite per il database AdventureWorks
.
SELECT DATABASEPROPERTYEX('AdventureWorks', 'Collation');
Vedere anche
Concetti
Impostazione delle opzioni di database
Domande frequenti sull'esecuzione di query sul catalogo di sistema di SQL Server
Configurazione della visibilità dei metadati
Altre risorse
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
5 dicembre 2005 |
|