동적 관리 뷰 및 함수(Transact-SQL)

동적 관리 뷰 및 함수는 서버 인스턴스 상태 모니터링, 문제 진단 및 성능 튜닝에 사용할 수 있는 서버 상태 정보를 반환합니다.

중요 정보중요

동적 관리 뷰 및 함수는 내부 구현과 관련된 상태 데이터를 반환합니다. 이렇게 반환되는 스키마와 데이터는 이후 버전의 SQL Server에서 변경될 수 있습니다. 따라서 다음 번 릴리스의 동적 관리 뷰 및 함수는 이번 릴리스의 동적 관리 뷰 및 함수와 호환되지 않을 수 있습니다. 예를 들어 이후 SQL Server 릴리스에서 Microsoft가 열 목록의 끝에 열을 추가하여 동적 관리 뷰의 정의를 보강할 수 있습니다. 반환된 열 수가 응용 프로그램을 바꾸거나 중단할 수 있으므로 프로덕션 코드에서는 SELECT * FROM dynamic_management_view_name 구문을 사용하지 않는 것이 좋습니다.

동적 관리 뷰 및 함수에는 다음과 같은 두 가지 유형이 있습니다.

  • 서버 범위 동적 관리 뷰 및 함수. 이 유형에는 서버에 대한 VIEW SERVER STATE 권한이 필요합니다.

  • 데이터베이스 범위 동적 관리 뷰 및 함수. 이 유형에는 데이터베이스에 대한 VIEW DATABASE STATE 권한이 필요합니다.

동적 관리 뷰 쿼리

Transact-SQL 문에서 두 부분, 세 부분 또는 네 부분으로 된 이름을 사용하여 동적 관리 뷰를 참조할 수 있습니다. 한편 동적 관리 함수는 Transact-SQL 문에서 두 부분이나 세 부분으로 된 이름을 사용하여 참조할 수 있습니다. Transact-SQL 문에서 한 부분으로 된 이름을 사용하여 동적 관리 뷰 및 함수를 참조할 수는 없습니다.

모든 동적 관리 뷰 및 함수는 sys 스키마에 있으며 dm_* 명명 규칙을 따릅니다. 동적 관리 뷰 또는 함수를 사용할 경우 뷰 또는 함수 이름에 sys 스키마 접두사를 지정해야 합니다. 예를 들어 dm_os_wait_stats 동적 관리 뷰를 쿼리하려면 다음 쿼리를 실행합니다.

SELECT wait_type, wait_time_ms

FROM sys.dm_os_wait_stats;

GO

필요한 권한

동적 관리 뷰 또는 함수를 쿼리하려면 개체에 대한 SELECT 권한과 VIEW SERVER STATE 또는 VIEW DATABASE STATE 권한이 필요합니다. 이러한 사용 권한을 통해 동적 관리 뷰 및 함수에 대한 사용자 또는 로그인의 액세스를 선택적으로 제한할 수 있습니다. 이렇게 하기 위해서는 먼저 master에 사용자를 만든 다음 사용자가 액세스할 수 없도록 할 동적 관리 뷰 또는 함수에 대한 사용자의 SELECT 권한을 거부합니다. 그러면 사용자의 데이터베이스 컨텍스트에 관계없이 사용자가 이러한 동적 관리 뷰 또는 함수에서 선택할 수 없게 됩니다.

[!참고]

DENY가 우선 적용되기 때문에 사용자에게 VIEW SERVER STATE 권한을 부여했지만 VIEW DATABASE STATE 권한을 거부한 경우 해당 사용자는 서버 수준 정보는 볼 수 있지만 데이터베이스 수준 정보는 볼 수 없습니다.

섹션 내용

동적 관리 뷰 및 함수는 다음 범주로 구분됩니다.

AlwaysOn 가용성 그룹 동적 관리 뷰 및 함수

인덱스 관련 동적 관리 뷰 및 함수

변경 데이터 캡처 관련 동적 관리 뷰

I/O 관련 동적 관리 뷰 및 함수

변경 내용 추적 관련 동적 관리 뷰

개체 관련 동적 관리 뷰 및 함수

공용 언어 런타임 관련 동적 관리 뷰

쿼리 알림 관련 동적 관리 뷰

데이터베이스 미러링 관련 동적 관리 뷰

복제 관련 동적 관리 뷰

데이터베이스 관련 동적 관리 뷰

리소스 관리자 관련 동적 관리 뷰

실행 관련 동적 관리 뷰 및 함수

보안 관련 동적 관리 뷰

확장 이벤트 동적 관리 뷰

Service Broker 관련 동적 관리 뷰

Filestream 및 FileTable 동적 관리 뷰(Transact-SQL)

SQL Server 운영 체제 관련 동적 관리 뷰

전체 텍스트 검색 및 의미 체계 검색 동적 관리 뷰

트랜잭션 관련 동적 관리 뷰 및 함수

참고 항목

참조

GRANT 서버 사용 권한(Transact-SQL)

GRANT 데이터베이스 사용 권한(Transact-SQL)

시스템 뷰(Transact-SQL)