Tsql을 사용하면 인덱스 재구성, reorg 또는 updatestatistics가 SQL 서버 (2000, 2005 또는 2008)에서 마지막으로 실행 된시기를 어떻게 알 수 있습니까?Tsql, 인덱스 재 작성, reorg 또는 updatestatistics가 SQL 서버에서 마지막으로 실행 된시기를 알고 싶습니다.
감사합니다.
Tsql을 사용하면 인덱스 재구성, reorg 또는 updatestatistics가 SQL 서버 (2000, 2005 또는 2008)에서 마지막으로 실행 된시기를 어떻게 알 수 있습니까?Tsql, 인덱스 재 작성, reorg 또는 updatestatistics가 SQL 서버에서 마지막으로 실행 된시기를 알고 싶습니다.
감사합니다.
SQL Server는이 정보를 저장하지 않습니다. REBUILD 작업이 인덱스에 대한 통계를 업데이트 할 때 특정 인덱스에 대해 통계가 마지막으로 업데이트 된 날짜를 기반으로 "대략적인"추정치를 얻을 수 있습니다.
다음은 AdventureWorks 데이터베이스를 사용하는 예입니다
USE AdventureWorks;
GO
SELECT name AS Stats,
STATS_DATE(object_id, stats_id) AS LastStatsUpdate
FROM sys.stats
WHERE object_id = OBJECT_ID('Sales.SalesOrderDetail')
and left(name,4)!='_WA_';
GO
당신은 SQL Server 용 무료로 사용할 수있는 여러 가지 인덱스 튜닝 유지 보수 스크립트 중 하나를 사용하는 것이 좋습니다. 이들은 주어진 데이터베이스에서 수행 된 인덱스 조작의 세부 사항을 저장하여 인덱스가 마지막으로 재 빌드 된 시점에 대한 정보를 제공하는 수단을 제공합니다.
SQL Server 2000에 미셸 Ufford
에 의해 작성된 우수한 Index Maintenance Script를 살펴 보자은, 다음 스크립트는 SQL 2000에 존재하지 않는 sys.stats로 필요할 수 있습니다 :
DBCC SHOW_STATISTICS(TABLENAME, INDEX_NAME)
많은 귀하의 스크립트 존 주셔서 감사합니다!
EDIT : 나는이 스크립트를 SQL 2005+ 이상으로 고려해 왔으며 (TableName, IndexName, LastStatsUpdate 형식의 데이터를 볼 필요가 있음) 다음 스크립트를 생각해 냈습니다.
나는 그것이 연마가 필요하다고 확신하므로 필요에 따라 조정할 수 있습니다.
SELECT OBJECT_NAME(object_id) [TableName],
name [IndexName],
STATS_DATE(object_id, stats_id) [LastStatsUpdate]
FROM sys.stats
WHERE name NOT LIKE '_WA%'
AND STATS_DATE(object_id, stats_id) IS NOT NULL
AND OBJECTPROPERTY(object_id, 'IsMSShipped') = 0
ORDER BY TableName, IndexName
고맙습니다. – Manjot
여러분, 반갑습니다. –
이 인덱스 유지 관리 스크립트를 Ola Hallengren의 SQL Server Magazine 수상 스크립트와 비교해 보셨습니까? – user429921