sys.dm_db_index_usage_stats(Transact-SQL)
적용 대상: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform 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, S0 및 S1 서비스 목표 및 탄력적 풀의 데이터베이스에는 서버 관리자 계정, 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)
성능 모니터링 및 튜닝