2016-02-19 55 views
0

我最近遇到了一些性能问题,同时在几张表上禁用了故障排除索引。但是我没有得到这些被禁用的细节。 我已经检查了“sys.indexes”表,但是没有这样的信息可用。当索引被禁用时

+0

检查sys_indexes中的is_disabled –

+0

我建议开始跟踪数据库中的所有DDL命令。因此你有日期,姓名等等。 –

回答

1

我认为答案是“没有,事后不知道“。但是,如果这是您有兴趣知道下次何时发生的信息,则可以在DDL事件上设置DDL触发器或事件通知,以将该信息存储在某处。

-1

我希望这会帮助你;

SELECT OBJECT_NAME(si.object_id) AS table_name, i.name AS indexname, sc.name column_name 
FROM sys.index_columns si 
    JOIN sys.columns sc ON sc.object_id = si.object_id 
          AND si.column_id = sc.column_id 
    LEFT JOIN SYS.indexes i ON si.object_id = i.object_id 
WHERE i.is_unique = 1; 
+0

我要求“索引被禁用时”。 –

-1

它的存在对堆栈溢出... Find disabled indexes ...

禁用或重建索引,您可以使用下面的代码从SQL Server Blog

USE AdventureWorks 
GO 
----Diable Index 
ALTER INDEX [IX_StoreContact_ContactTypeID] ON Sales.StoreContact DISABLE 
GO 
----Enable Index 
ALTER INDEX [IX_StoreContact_ContactTypeID] ON Sales.StoreContact REBUILD 
GO 
+0

我知道如何做到这一点。我的问题与此无关。我在问“如何禁用索引”而不是“如何禁用”。 –

+0

@RohitKumar,我相信不可能找出禁用索引时的日期和时间详细信息。正如Ben Thul所建议的那样,设置触发器或事件应该在这种情况下工作。 – Aditya