Errore dell'indice non cluster indicato dall'ID di indice: DEPRECATA

Microsoft.SQLServer.2008.The_nonclustered_index_indicated_by_the_index_ID_is_in_error_1_5_Rule (Rule)

Knowledge Base article:

Riepilogo

Questo errore si verifica quando l'indice non cluster, indicato dall'ID di indice, è errato. L'errore viene individuato quando un processo tenta di eliminare una riga inesistente.

Soluzioni

Eseguire DBCC CHECKDB senza una clausola di correzione per determinare la portata del danno, quindi eseguire DBCC CHECKDB con la clausola REPAIR_REBUILD per correggerlo. Se il problema persiste, eliminare e ricreare l'indice, come descritto di seguito, oppure rivolgersi al servizio di supporto tecnico.

Importante: se l'esecuzione di DBCC CHECKDB con la clausola REPAIR_REBUILD non è sufficiente per risolvere il problema dell'indice o in caso di dubbio sugli effetti di tale esecuzione sui dati, rivolgersi al servizio di supporto tecnico.

Per eliminare e ricreare l'indice:

Prendere nota del valore della pagina di indice e dell'ID di indice specificati nel testo del messaggio.

Individuare la tabella e l'indice corrispondenti al numero della pagina.

Prendere nota dell'ID di oggetto.

Se l'oggetto che presenta l'errore è una tabella di sistema, ovvero se l'ID di oggetto è minore di 100, non è possibile eliminare l'indice. Eseguire DBCC CHECKDB con la clausola REPAIR_REBUILD o ripristinare il database da una copia di backup priva di errori.

Se l'ID di oggetto è maggiore di 100, eliminare e ricreare l'indice utilizzando il nome di tabella e il nome di indice ottenuti nel passaggio 1. Nella maggior parte dei casi, ciò consente di correggere l'errore.

Eseguire DBCC CHECKDB con la clausola REPAIR_REBUILD sul database interessato per verificare che i problemi siano stati effettivamente risolti.

Se il problema persiste, significa che questo intervento non è sufficiente. In questo caso, rivolgersi al servizio di supporto tecnico. Accertarsi di avere l'output di DBCC CHECKDB disponibile per la consultazione.

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
CategoryEventCollection
EnabledFalse
Event_ID644
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Errore dell'indice non cluster indicato dall'ID di indice
{0}
Event LogApplication
CommentMom2008ID='{C4E8CBD6-D28E-4F67-B4C3-5B543CE8CACF}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Microsoft.SQLServer.SQLDefaultAccount
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2008.The_nonclustered_index_indicated_by_the_index_ID_is_in_error_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="false" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{C4E8CBD6-D28E-4F67-B4C3-5B543CE8CACF}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>644</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2008.The_nonclustered_index_indicated_by_the_index_ID_is_in_error_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>