Просмотр метаданных базы данных

Изменения: 5 декабря 2005 г.

Базу данных, файл, секцию и свойства файловой группы можно просматривать при помощи разных представлений каталогов, системных функций и системных хранимых процедур.

В следующей таблице приводятся представления каталогов, системные функции и системные хранимые процедуры, возвращающие сведения о базах данных, файлах и файловых группах.

Представления Функции Хранимые процедуры и другие инструкции

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)

 

 

Представление sys.dm_db_session_space_usage (только tempdb)

 

 

sys.dm_db_task_space_usage (только tempdb)

 

 

Если указываемая база данных недоступна, некоторые столбцы в представлении каталога sys.databases и свойства в функции DATABASEPROPERTYEX могут возвращать значение NULL. Например, для возврата имени параметров сортировки в базе данных необходимо выполнить доступ к базе данных. Если база данных не находится в оперативном режиме или если параметр AUTO_CLOSE установлен в ON, имя параметров сортировки не может быть возвращено.

Примеры

А. Получение сведений о базе данных с помощью системных представлений каталога

В следующем примере представления каталога sys.partitions, sys.allocation_units, sys.objects и sys.indexes используются для получения номеров секций и единиц размещения для каждой таблицы и каждого индекса базы данных.

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;

Б. Получение сведений о размере базы данных с помощью системных представлений каталога

В следующем примере представление каталога sys.database_files и динамическое административное представление sys.dm_db_file_space_usage используются для получения сведений о размере базы данных tempdb. Представление sys.dm_db_file_space_usage применимо только к базе данных 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;

В. Использование системных функций

В следующем примере показано получение имен параметров сортировки, установленных по умолчанию для базы данных AdventureWorks, с помощью системной функции DATABASEPROPERTYE.

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

См. также

Основные понятия

Установка параметров базы данных
Часто задаваемые вопросы о запросах к системному каталогу сервера SQL Server
Настройка видимости метаданных

Другие ресурсы

Реализация баз данных

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

5 декабря 2005 г.

Новое содержимое
  • Добавлен раздел «Примеры».
  • Добавлены динамические административные представления для базы данных tempdb.
Обновленное содержимое
  • Исправлен пример Б.