Minion.IndexMaintLogDetails
Keeps a record of individual index maintenance activities. It contains one time-stamped row for each individual index operation (e.g., a single index rebuild).
Name | Type | Description |
ID | int | Primary key row identifier. |
ExecutionDateTime | datetime | Date and time the entire reindex operation took place. If the job were started through IndexMaintMaster then all databases in that run have the same ExecutionDateTime. If the job was run manually from Minion.IndexMaintDB, then this value will only be for this database. It will still have a matching row in the Minion.IndexMaintLog table. |
Status | varchar | Current status of the index operation. If Live Insight is being used the status updates will appear here. When finished, this column will either read ‘Complete’ or ‘FATAL ERROR: error message’. The one exception is when the job has been run with PrepOnly = 1. When running with PrepOnly = 1, this column is updated with the index fragmentation gather stats. For example, say that you were pulling fragmentation stats for 7 indexes with PrepOnly = 1. The final status message would look something like this: ‘7 of 7: GATHERING FRAG STATS: dbo.fragment.ix_fragment2’. This shows you that all 7 of the fragmentation stats were collected. |
DBName | Varchar | Database name. |
TableID | bigint | The table ID in sysobjects. |
SchemaName | Varchar | Schema name. |
TableName | Varchar | Table name. |
IndexID | Int | The index ID from sys.indexes. |
IndexName | varchar | The index name from sys.indexes. |
IndexTypeDesc | varchar | The index type description from sys.indexes. |
IndexScanMode | varchar | Either NULL, Limited, or Detailed. NULL means that nothing was entered into the column in either Minion.IndexSettingsDB or Minion.IndexSettingsTable and therefore the default (Limited) was used. |
Op | varchar | Operation. Valid inputs are Reorg or Rebuild. This is the type of operation performed in the current index. |
OnlineOpt | varchar | NULL, On, Off. If NULL, then nothing was entered into either the Minion.IndexSettingsDB or Minion.IndexSettingsTable tables, and the default (OFF) is used. So the operation was either done offline or online. |
ReorgThreshold | Tinyint | The percentage threshold at which Index Maintenance should reorganize an index. |
ReindexThreshold | Tinyint | The percentage threshold at which Index Maintenance should rebuild an index. |
FragLevel | tinyint | The fragmentation level of the current index at the time the fragmentation stats were taken. If they were taken earlier in the day as part of a PrepOnly run, then they may not match current fragmentation stats. |
Stmt | nvarchar | The reindex statement that was run. |
GroupOrder | int | Group to which this table belongs. Used solely for determining the order in which tables should be processed for index maintenance. Most of the time this will be 0. However, if you choose to take advantage of this feature a row in Minion.IndexSettingsTable will get you there. This is a weighted list so higher numbers are more important and will be processed first. For more information, see “How To: Reindex databases in a specific order”. |
ReindexOrder | int | The ordering of the tables within the previous group. Most of the time this will be 0. However, if you choose to take advantage of this feature a row in Minion.IndexSettingsTable will get you there. This is a weighted list so higher numbers are more important and will be processed first. For more information, see “How To: Reindex databases in a specific order”. |
PreCode | varchar | Any precode run before the table is processed. If the table has multiple indexes the precode will only be run once. |
PostCode | varchar | Any postcode run after the table is processed. If the table has multiple indexes the postcode will only be run once. |
OpBeginDateTime | datetime | Date and time the reindex statement began running. |
OpEndDateTime | datetime | Date and time the reindex statement finished running. |
OpRunTimeInSecs | int | How many seconds the reindex statement took. |
TableRowCTBeginDateTime | datetime | Internal use. |
TableRowCTEndDateTime | datetime | Internal use. |
TableRowCTTimeInSecs | int | Internal use. |
TableRowCT | bigint | The count of rows in the table. Therefore, all indexes for a single table will have the exact same row counts. |
PostFragBeginDateTime | datetime | Date and time the post fragmentation statement began. The post fragmentation level is explained above in the Minion.IndexSettingsDB and Minion.IndexSettingsTable tables. |
PostFragEndDateTime | datetime | Date and time the post fragmentation statement finished. The post fragmentation level is explained above in the Minion.IndexSettingsDB and Minion.IndexSettingsTable tables. |
PostFragTimeInSecs | int | How many seconds the post fragmentation stats collection took. |
PostFragLevel | tinyint | The fragmentation level of the index immediately after the reindex operation finished. This is an excellent way to see the effectiveness of your routines and whether you need to adjust your threshold levels for individual tables. |
UpdateStatsBeginDateTime | datetime | Date and time update statistics began. This will only be populated if the operation is a REORG and the UpdateStatsOnDefrag column in either Minion.IndexSettingsDB or Minion.IndexSettingsTable is set to 1. The value should always be set to 1 unless you have a specific reason not to. |
UpdateStatsEndDateTime | datetime | Date and time update statistics finished. This will only be populated if the operation is a REORG and the UpdateStatsOnDefrag column in either Minion.IndexSettingsDB or Minion.IndexSettingsTable is set to 1. The value should always be set to 1 unless you have a specific reason not to. |
UpdateStatsTimeInSecs | int | How many seconds the update statistics statement took. |
UpdateStatsStmt | varchar | The exact update statistics statement that was run. |
PreCodeBeginDateTime | datetime | Date and time the precode for the table began. |
PreCodeEndDateTime | datetime | Date and time the precode for the table finished. |
PreCodeRunTimeInSecs | int | How many seconds the table precode took. |
PostCodeBeginDateTime | datetime | Date and time the postcode for the table began. |
PostCodeEndDateTime | datetime | Date and time the postcode for the table finished. |
PostCodeRunTimeInSecs | bigint | How many seconds the table postcode took. |
UserSeeks | bigint | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
UserScans | bigint | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
UserLookups | bigint | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
UserUpdates | bigint | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
LastUserSeek | datetime | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
LastUserScan | datetime | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
LastUserLookup | datetime | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
LastUserUpdate | datetime | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
SystemSeeks | bigint | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
SystemScans | bigint | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
SystemLookups | bigint | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
SystemUpdates | bigint | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
LastSystemSeek | datetime | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
LastSystemScan | datetime | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
LastSystemLookup | datetime | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
LastSystemUpdate | datetime | See http://msdn.microsoft.com/en-us/library/ms188755.aspx |
Warnings | Varchar(max) | Reserved for future use. |
Discussion:
The data available in this log includes the status of the operation, the object information, the statement used, operation type, reorg and rebuild thresholds, index usage information, and more.