sys.dm_db_index_usage_stats(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

다양한 유형의 인덱스 작업 수와 각 작업 유형이 마지막으로 수행된 시간을 반환합니다.

Azure SQL Database에서 동적 관리 뷰는 데이터베이스 포함에 영향을 주거나 사용자가 액세스할 수 있는 다른 데이터베이스에 대한 정보를 노출하는 정보를 노출할 수 없습니다. 이 정보를 노출하지 않으려면 연결된 테넌트에 속하지 않는 데이터가 포함된 모든 행이 필터링됩니다.

참고 항목

DMV sys.dm_db_index_usage_stats 는 메모리 최적화 인덱스 또는 공간 인덱스에 대한 정보를 반환하지 않습니다. 메모리 최적화 인덱스 사용에 대한 자세한 내용은 sys.dm_db_xtp_index_stats(Transact-SQL)를 참조하세요.

참고 항목

Azure Synapse Analytics 또는 PDW(Analytics Platform System)에서 이 보기를 호출하려면 다음을 사용합니다 sys.dm_pdw_nodes_db_index_usage_stats. 이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.

열 이름 데이터 형식 설명
database_id smallint 테이블 또는 뷰가 정의되어 있는 데이터베이스의 ID입니다.

Azure SQL Database에서 값은 단일 데이터베이스 또는 탄력적 풀 내에서 고유하지만 논리 서버 내에는 없습니다.
object_id int 인덱스가 정의된 테이블 또는 뷰의 ID
index_id int 인덱스의 ID입니다.
user_seeks bigint 사용자 쿼리에 의한 검색 횟수입니다.
user_scans bigint 'seek' 조건자를 사용하지 않은 사용자 쿼리별 검색 수입니다.
user_lookups bigint 사용자 쿼리별 책갈피 조회 수입니다.
user_updates bigint 사용자 쿼리별 업데이트 수입니다. 여기에는 영향을 받는 실제 행이 아닌 작업 수를 나타내는 삽입, 삭제 및 업데이트 포함됩니다. 예를 들어 한 문에서 1000개의 행을 삭제하는 경우 이 개수는 1씩 증가합니다.
last_user_seek 날짜/시간 마지막 사용자 검색 시간
last_user_scan 날짜/시간 마지막 사용자 검색 시간입니다.
last_user_lookup 날짜/시간 마지막 사용자 조회 시간입니다.
last_user_update 날짜/시간 마지막 사용자 업데이트 시간입니다.
system_seeks bigint 시스템 쿼리에 의한 검색 횟수입니다.
system_scans bigint 시스템 쿼리별 검색 수입니다.
system_lookups bigint 시스템 쿼리별 조회 수입니다.
system_updates bigint 시스템 쿼리별 업데이트 수입니다.
last_system_seek 날짜/시간 마지막 시스템 검색 시간입니다.
last_system_scan 날짜/시간 마지막 시스템 검사 시간입니다.
last_system_lookup 날짜/시간 마지막 시스템 조회 시간입니다.
last_system_update 날짜/시간 마지막 시스템 업데이트 시간입니다.
pdw_node_id int 적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW)

이 배포가 있는 노드의 식별자입니다.

설명

한 번의 쿼리 실행으로 지정된 인덱스에 대한 모든 개별 검색, 검색, 조회 또는 업데이트는 해당 인덱스의 사용으로 계산되며 이 보기에서 해당 카운터를 증가합니다. 사용자가 제출한 쿼리로 인한 작업과 통계 수집 검사와 같이 내부적으로 생성된 쿼리로 인한 작업에 대한 정보가 모두 보고됩니다.

열은 user_updates 기본 테이블 또는 뷰에서 삽입, 업데이트 또는 삭제 작업으로 인해 인덱스에 대한 기본 테넌스의 카운터입니다. 이 뷰를 사용하여 어떤 인덱스가 사용자 애플리케이션에서만 조금 사용되는지 뷰를 사용하여 기본 테넌트 오버헤드가 발생하는 인덱스를 확인할 수도 있습니다. 기본 테넌트 오버헤드가 발생하지만 쿼리에 사용되지 않거나 쿼리에 자주 사용되지 않는 인덱스를 삭제하는 것이 좋습니다.

카운터는 데이터베이스 엔진이 시작될 때마다 비어 있도록 초기화됩니다. sqlserver_start_time sys.dm_os_sys_info 열을 사용하여 마지막 데이터베이스 엔진 시작 시간을 찾습니다. 또한 데이터베이스가 분리되거나 종료될 때마다(예: AUTO_CLOSE ON으로 설정되었으므로) 데이터베이스와 연결된 모든 행이 제거됩니다.

인덱스가 사용되는 경우 인덱스 행 sys.dm_db_index_usage_stats 이 아직 없는 경우 행이 추가됩니다. 행이 추가되면 초기에 해당 카운터가 0으로 설정됩니다.

SQL Server 2008 R2(10.50.x), SQL Server 2012(11.x) 또는 SQL Server 2014(12.x)로 업그레이드하는 동안 항목 sys.dm_db_index_usage_stats 이 제거됩니다. SQL Server 2016(13.x)부터 항목은 SQL Server 2008 R2(10.50.x) 이전과 같이 유지됩니다.

사용 권한

SQL Server 및 SQL Managed Instance에서는 VIEW SERVER STATE 권한이 필요합니다.

SQL Database Basic, S0S1 서비스 목표 및 탄력적 풀의 데이터베이스에는 서버 관리자 계정, Microsoft Entra 관리자 계정 또는 서버 역할##MS_ServerStateReader##멤버 자격이 필요합니다. 다른 모든 SQL Database 서비스 목표에 대해서는 데이터베이스에 대한 VIEW DATABASE STATE 권한 또는 ##MS_ServerStateReader## 서버 역할의 멤버 자격이 필요합니다.

SQL Server 2022 이상에 대한 권한

서버에 대한 VIEW SERVER PERFORMANCE STATE 권한이 필요합니다.

참고 항목

인덱스 관련 동적 관리 뷰 및 함수(Transact-SQL)
sys.dm_db_index_physical_stats(Transact-SQL)
sys.dm_db_index_operational_stats(Transact-SQL)
sys.indexes(Transact-SQL)
sys.objects(Transact-SQL)
sys.dm_os_sys_info(Transact-SQL)
성능 모니터링 및 튜닝