VERWENDEN [IhrDB-Name]
SET NOCOUNT ON
DECLARE @Table_Name varchar(200)
DECLARE @Index_Name varchar(200)
DECLARE @Index_Type varchar(50)
DECLARE Indx_Cursor CURSOR
STATIC ENTHALTEN FÜR
select s_tab.name as Table_Name, s_indx.name as Index_Name, s_indx.type_desc as Index_Type
from sys.indexes s_indx
inner join sys.tables s_tab on s_tab.object_id = s_indx.object_id
where s_indx.name is not null;
ÖFFNEN Indx_Cursor
WENN @@CURSOR_ROWS > 0
BEGIN
FETCH NÄCHSTES VON Indx_Cursor INTO @Table_Name, @Index_Name, @Index_Type
WÄHREND @@Fetch_status = 0
BEGIN
INSERT INTO INDEX_HISTORY(table_name, index_name, Index_Type, Created_date)
SELECT @Table_Name, @Index_Name, @Index_Type, STATS_DATE(OBJECT_ID(@Table_Name),
(SELECT index_id FROM sys.indexes WHERE name = @Index_Name)) AS Index_create_Date
FETCH NÄCHSTES VON Indx_Cursor INTO @Table_Name, @Index_Name, @Index_Type
END
END
SCHLIEßEN Indx_Cursor
DEALLOCATE Indx_Cursor
auswählen distinct * von index_history
Aber das Hauptproblem bei Indizes ist, dass bei einem Neuaufbau oder einer Neuorganisation von Indizes das Erstellungsdatum des Index auf das Datum geändert wird, an dem der Index zuletzt neu erstellt oder neu organisiert wurde.