KB963659-FIX: viene visualizzato un messaggio di errore quando si esegue una popolazione per un grande indice full-text in SQL Server 2008 o in SQL Server 2008 R2

Microsoft distribuisce le correzioni di Microsoft SQL Server 2008 come un file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 FIX.

Sintomi

Sintomo 1Quando si esegue una popolazione per un grande indice full-text in Microsoft SQL Server 2008 o in Microsoft SQL Server 2008 R2, è possibile che venga visualizzato un messaggio di errore nel file di log full-text. Il numero di registrazione del messaggio di errore dipende dalle dimensioni del batch meno uno. Ad esempio, in un computer a 32 bit la dimensione del batch è 1.000, quindi l'errore viene registrato 999 volte. Il messaggio di errore è simile al seguente:

Errore ' 0x8004cb04: l'WordList in memoria è danneggiato. Ciò è dovuto a un filtro difettoso, Wordbreaker o a un altro componente di indicizzazione. "si è verificato durante il popolamento dell'indice full-text per la tabella o la visualizzazione indicizzata" [smarsh]. [dbo]. [ArchiveMsgs]' (ID della visualizzazione tabella o indicizzata ' 160719625', ID database ' 7'), valore chiave full-text ' 291484087'. Verrà eseguito un tentativo di reindicizzarlo.

Dopo aver ricevuto questo messaggio di errore, è possibile che venga visualizzato anche il messaggio di errore seguente per le dimensioni del batch meno uno:

<data> <ora> errore spid28s "0x80040E28" si è verificato durante il popolamento dell'indice full-text per la tabella o la visualizzazione indicizzata "[smarsh]. [dbo]. [ArchiveMsgs]' (ID della visualizzazione tabella o indicizzata ' 160719625', ID database ' 7'), valore chiave full-text ' 199598211'. Verrà eseguito un tentativo di reindicizzarlo.

Dopo aver ricevuto questo messaggio di errore, è possibile che venga visualizzato anche il messaggio di errore seguente per le dimensioni del batch meno uno:

<data> <ora> Errore spid26s "0x80043630: il processo del daemon di filtri MSFTEFD scaduta per un motivo sconosciuto. Questo potrebbe indicare un bug in un gestore di filtri, Wordbreaker o protocollo. "si è verificato durante il popolamento dell'indice full-text per la tabella o la visualizzazione indicizzata" [smarsh]. [dbo]. [ArchiveMsgs]' (ID della visualizzazione tabella o indicizzata ' 160719625', ID database ' 7'), valore chiave full-text ' 14304130'. Verrà eseguito un tentativo di reindicizzarlo.

Sintomo 2Inoltre, potresti notare che il processo FDHOST. exe non funziona correttamente. Quando si tenta di eseguire una query full-text o si esegue un popolamento full-text, viene restituito il messaggio seguente al client.

Msg 30053, livello 16, stato 102, interruzione di riga 1Word scaduta per la stringa di query full-text. Questo problema può verificarsi se Wordbreaker ha impiegato molto tempo per elaborare la stringa di query full-text oppure se nel server è in esecuzione un numero elevato di query. Provare a eseguire di nuovo la query sotto un carico più chiaro.

Quando si esaminano i registri di SQLFT * per questo catalogo, si noterà questo messaggio di errore:

L'errore "0x80004005" si è verificato durante il popolamento dell'indice full-text per la tabella o la visualizzazione indicizzata ' [DBNAME]. [dbo]. [TableName]' (ID della visualizzazione tabella o indicizzata ' 1204001724', ID database ' 5'), valore chiave full-text ' 4'. Verrà eseguito un tentativo di reindicizzarlo.

Quando si esamina il log degli errori SQL, si nota questo messaggio di errore:

Errore: 30089, gravità: 17, stato: 1. il processo di hosting del daemon di filtri FULLTEXT (FDHost) si è interrotto in modo anomalo. Questo problema può verificarsi se un componente linguistico configurato in modo non corretto o non funziona correttamente, ad esempio Wordbreaker, lo stemmer o il filtro ha causato un errore irrecuperabile durante l'indicizzazione di testo completo o l'elaborazione di query. Il processo verrà riavviato automaticamente.

Causa

Questo problema si verifica a causa di un bug nella comunicazione tra il processo sqlservr. exe e il processo fdhost. exe. Quando i batch vengono inviati dal processo sqlservr. exe al processo fdhost. exe, talvolta la memoria condivisa in uscita (OSM), ovvero la memoria condivisa da sqlservr. exe a fdhost. exe, non ha spazio sufficiente per adattare la colonna successiva di un documento. In questo caso, il processo sqlservr. exe invia un messaggio per notificare al processo fdhost. exe di elaborare tutti i dati esistenti nell'OSM. Mentre il processo fdhost. exe elabora i dati, la memoria condivisa in ingresso (ISM), che è la memoria condivisa da fdhost. exe a sqlservr. exe, potrebbe diventare completa. In questo caso, il processo fdhost. exe invia un messaggio "Rewind" al processo sqlservr. exe. Questo messaggio richiede che il processo sqlservr. exe rimandi l'ultimo documento dalla prima colonna. Tuttavia, quando il processo sqlservr. exe inizia a inviare di nuovo il documento, viene avviato dalla colonna 2 anziché dalla colonna 1. Questo causa i messaggi di errore menzionati nella sezione "Sintomi".

Risoluzione

Informazioni sull'aggiornamento cumulativo

SQL Server 2008 R2 Service Pack 2

La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 3. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2008 R2 Service Pack 2, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

2754552 Pacchetto di aggiornamento cumulativo 3 per SQL Server 2008 R2 Service Pack 2 Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 R2 Service Pack 2 Fix. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

2730301 Build di SQL Server 2008 R2 rilasciate dopo il rilascio di SQL Server 2008 R2 Service Pack 2

SQL Server 2008

La correzione di questo problema è stata rilasciata per la prima volta nell'aggiornamento cumulativo 4 per la versione finale di SQL Server 2008. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2008, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

963036 Pacchetto di aggiornamento cumulativo 4 per SQL Server 2008Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 FIX. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

956909 Build di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008

SQL Server 2008 Service Pack 1

La correzione di questo problema è stata rilasciata per la prima volta in aggiornamento cumulativo 1 per SQL Server 2008 Service Pack 1. Per altre informazioni su come ottenere questo pacchetto di aggiornamento cumulativo per SQL Server 2008, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

969099 Pacchetto di aggiornamento cumulativo 1 per SQL Server 2008 Service Pack 1Nota Poiché le build sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nella versione precedente di SQL Server 2008 FIX. Ti consigliamo di considerare l'applicazione della versione di correzione più recente che contiene questo hotfix. Per ulteriori informazioni, fare clic sul numero dell'articolo seguente per visualizzare l'articolo nella Microsoft Knowledge Base:

970365 Build di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008 Service Pack 1

Soluzione alternativa

Per aggirare il problema, aumentare le dimensioni dell'ISM. A questo scopo, configura la variabile ISM_Size usando la stored procedure sp_fulltext_service . Per visualizzare il valore corrente:sp_fulltext_service "ism_size" per cambiare il valore in 16:sp_fulltext_service "ism_size", @value = 16Nota: è necessario riavviare il servizio SQL Server affinché questa modifica diventi effettiva.

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Ulteriori informazioni

Questo problema non impedisce il completamento della popolazione. L'indice full-text include la logica di ripetizione predefinita che continuerà a ripetere la voce non riuscita finché non riesce. Di conseguenza, è possibile ignorare i messaggi di errore in modo sicuro. Gli unici possibili effetti collaterali negativi noti sono che può richiedere più tempo del normale per il completamento della popolazione e la crescita del log full-text aumenta in modo significativo per la segnalazione dell'errore. La logica di tentativo nel codice sorgente causa un'eventuale popolazione di successo senza danneggiamento dell'indice, nonostante il messaggio di errore che indica possibili danneggiamenti. Se si esegue in sintomo #2 descritto sopra, le query di ricerca full-text o la popolazione non funzioneranno, poiché il componente FDHOST non è in uno stato corretto e sarà necessario applicare questo aggiornamento cumulativo.

Altre informazioni sul pacchetto di aggiornamento cumulativo 4 per SQL Server 2008

Per altre informazioni sui file modificati e per informazioni su eventuali prerequisiti per applicare il pacchetto di aggiornamento cumulativo che contiene l'hotfix descritto in questo articolo della Microsoft Knowledge base, fare clic sul numero dell'articolo nella Microsoft Knowledge Base seguente:

963036 Pacchetto di aggiornamento cumulativo 4 per SQL Server 2008

Altre informazioni sul pacchetto di aggiornamento cumulativo 1 per SQL Server 2008 Service Pack 1

Per altre informazioni sui file modificati e per informazioni su eventuali prerequisiti per applicare il pacchetto di aggiornamento cumulativo che contiene l'hotfix descritto in questo articolo della Microsoft Knowledge base, fare clic sul numero dell'articolo nella Microsoft Knowledge Base seguente:

969099 Pacchetto di aggiornamento cumulativo 1 per SQL Server 2008 Service Pack 1

Riferimenti

Per altre informazioni sull'elenco di compilazioni disponibili dopo il rilascio di SQL Server 2008, fare clic sul numero dell'articolo seguente per visualizzare l'articolo della Microsoft Knowledge Base:

956909 Build di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008Per altre informazioni sul modello di manutenzione incrementale per SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

935897 Un modello di manutenzione incrementale è disponibile nel team di SQL Server per fornire gli hotfix per i problemi segnalatiPer altre informazioni sullo schema di denominazione per gli aggiornamenti di SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

822499 Nuovo schema di denominazione per i pacchetti di aggiornamento software di Microsoft SQL ServerPer altre informazioni sulla terminologia degli aggiornamenti software, fare clic sul numero dell'articolo della Microsoft Knowledge Base seguente per visualizzare l'articolo:

824684 Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×