테이블에 여러 개의 인덱스가있을 수 있습니다. 동적 관리 뷰 sys.dm_db_index_usage_stats에는 각 인덱스에 대해 별도의 항목이 있습니다.
SELECT
o.name as TableName,
i.name as IndexName,
istats.last_user_update
from sys.dm_db_index_usage_stats istats
inner join sys.objects o
on o.object_id = istats.object_id
inner join sys.indexes i
on i.index_id = istats.index_id
and i.object_id = istats.object_id
order by
o.name,
i.name
을 또는 당신이 그것에 대해 걱정하지 않을 경우 그냥, 당신이 그룹은 테이블이 할 수있는 마지막 업데이트 시간을 원하는 : 각 하나에 대한 인덱스 이름을보고 싶다면
이 시도 이름 :이 쿼리 테이블에 직접 삽입 할 수 있습니다
SELECT
o.name as TableName,
max(istats.last_user_update)
from sys.dm_db_index_usage_stats istats
inner join sys.objects o
on o.object_id = istats.object_id
group by
o.name
: 또한
declare @Collect table (Name varchar(100),last_user_update datetime)
insert into @Collect
select
o.name as TableName,
istats.last_user_update
from sys.dm_db_index_usage_stats istats
inner join sys.objects o
on o.object_id = istats.object_id
inner join sys.indexes i
on i.index_id = istats.index_id
and i.object_id = istats.object_id
where database_id = db_id('SP3D_DB_RESEARCH_MDB')
을, 나는 N 해요 o 목표가 무엇인지는 확실하지만이보기에는 활동이있는 색인에 대한 항목 만 있습니다. 색인이 사용되지 않으면이보기에 없습니다. 첫 번째 액세스는 뷰에 행을 작성합니다. 이 관점에서 실제로 흥미로운 점은 검색 및 검색 정보입니다.
은 MSDN에서이 참고 사항을 참조 : 행이 이미 인덱스에 존재하지 않는 경우
인덱스를 사용하는
은 행이 sys.dm_db_index_usage_stats 에 추가됩니다. 행이 추가되면 카운터는 처음에 0으로 설정됩니다.
당신의 목표는 모든 인덱스를 열거 한 다음 모두를위한 마지막 업데이트 날짜를 표시하는 경우, 다음 sys.indexes에 가입해야합니다은 sys.dm_db_index_usage_stats에 가입 떠났다.
나는 그것이 http://stackoverflow.com/questions/26289609/getting-last-user-update-time-for-all-tables-in-a-database – Recursive
의 복사본이라고 생각한다. SELECT DISTINCT * FROM @Collect ORDER BY last_user_update DESC' – bummi
@Arnand, 중복되지 않았습니다. 그 질문의 후속 조치입니다. 새로운 문제이기 때문에 나는 그 질문을 편집하여 새 질문을 포함하고 싶지 않았습니다. – RBasniak