2012-02-17 141 views
1

有没有办法找出索引何时在数据库中重建或重组的历史记录?基本上有一个包含这些信息的日志文件?索引列表历史记录

+0

优秀的博客文章上使用默认的跟踪审计SQL服务器:http://sankarreddy.com/2010/04/t-sql-tuesday-005-who-put-my-database-offline/ – 8kb 2012-02-17 06:32:16

+0

我觉得这个帖子可能会回答你的问题: [http://stackoverflow.com/questions/2831293/tsql-know-when-index-rebuild-reorg-or-updatestatistics-was-last-run-on- SQL-SER] [1] [1]:http://stackoverflow.com/questions/2831293/tsql-know-when-index-rebuild-reorg-or-updatestatistics-was-last-run -on-SQL-SER – 2012-02-17 09:04:14

回答

0

不,但您可以创建一个维护此类日志的触发器。

CREATE TRIGGER [YourDatabaseTrigger] 
ON DATABASE 
FOR DDL_DATABASE_LEVEL_EVENTS 
AS 

DECLARE @EventData  xml 
DECLARE @Message  varchar(1000) 
SET @EventData=EVENTDATA() 

INSERT INTO YourLogTable 
    (EventDateTime,EventDescription) 
    VALUES (GETDATE(),SUSER_NAME() 
        +'; '[email protected]('(/EVENT_INSTANCE/ObjectType)[1]', 'varchar(250)') 
        +'; '[email protected]('(/EVENT_INSTANCE/ObjectName)[1]', 'varchar(250)') 
        +'; '[email protected]('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)') 
      ) 
RETURN 
GO 

ENABLE TRIGGER [YourDatabaseTrigger] ON DATABASE