Condividi tramite


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.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 (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

Implementazione di database

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

5 dicembre 2005

Nuovo contenuto:
  • Aggiunta della sezione "Esempi".
  • Aggiunta di viste a gestione dinamica per tempdb.
Contenuto aggiornato:
  • Correzione dell'esempio B.