2016-02-19 51 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