다음을 통해 공유


데이터베이스 메타데이터 보기

업데이트: 2005년 12월 5일

다양한 카탈로그 뷰, 시스템 함수 및 시스템 저장 프로시저를 사용하여 데이터베이스, 파일, 파티션 및 파일 그룹 속성을 볼 수 있습니다.

다음 표에서는 데이터베이스, 파일 및 파일 그룹에 대한 정보를 반환하는 카탈로그 뷰, 시스템 함수 및 시스템 저장 프로시저를 나열합니다.

함수 저장 프로시저 및 기타 문

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으로 설정된 경우 데이터 정렬 이름을 반환할 수 없습니다.

1. 시스템 카탈로그 뷰를 사용하여 데이터베이스 정보 반환

다음 예에서는 카탈로그 뷰 sys.partitions, sys.allocation_units, sys.objectssys.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;

2. 시스템 카탈로그 뷰를 사용하여 데이터베이스 크기 정보 반환

다음 예에서는 카탈로그 뷰 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;

3. 시스템 함수 사용

다음 예에서는 시스템 함수 DATABASEPROPERTYEX를 사용하여 AdventureWorks 데이터베이스에 대한 기본 데이터 정렬의 이름을 반환합니다.

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

참고 항목

개념

데이터베이스 옵션 설정
SQL Server 시스템 카탈로그 쿼리에 대한 질문과 대답
메타데이터 표시 유형 구성

관련 자료

데이터베이스 구현

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2005년 12월 5일

새로운 내용
  • "예" 섹션을 추가했습니다.
  • tempdb에 대한 동적 관리 뷰 정보를 추가했습니다.
업데이트된 내용
  • 예 2를 수정했습니다.