2011-12-20 16 views
12

Ho due tabelle con milioni di record.
Voglio cercare nel testo completo un paio di colonne (fondamentalmente nome e cognome). Tuttavia, entrambe queste tabelle vengono essenzialmente cancellate e sostituite da un pacchetto DTS precedente nel fine settimana.
Ho impostato il rilevamento delle modifiche su automatico e quando ha funzionato DTS, la tabella è stata bloccata e tutte le query non sono riuscite.Consigli per il rilevamento del testo completo dell'indicizzazione del testo di SQL Server e popolazione

Quindi, vorrei farlo nel modo giusto. Quali impostazioni o pianificazione dovrei utilizzare per il rilevamento delle modifiche di FTS e la popolazione? Devo impostare il rilevamento delle modifiche su off e pianificare una popolazione completa dopo l'esecuzione delle importazioni DTS?

Inoltre, qual è la differenza tra "rilevamento modifiche" e "popolazione" e come sono correlati?
Come può funzionare l'indice se non c'è tracciamento delle modifiche?
La popolazione completa aggiunge gli indici anche se il rilevamento delle modifiche è disattivato?

risposta

26

Ci sono molti modi per avvicinarsi alla popolazione dell'indice quando le tabelle vengono cancellate durante il fine settimana. Un'opzione consiste nel rilasciare l'indice full-text sulla tabella prima di cancellarlo e ricreare l'indice dopo la sostituzione del pacchetto DTS precedente. Un'altra opzione è quella di modificare l'indice per impostare CAMBIA TRACKING su MANUALE. Dopo che la tabella è stata cancellata e popolata nuovamente, è possibile attivare la popolazione dell'indice ft chiamando ALTER FULLTEXT INDEX ... AVVIA AGGIORNAMENTO POPOLAZIONE. Preferisco quest'ultimo (non dimenticare di reimpostare il rilevamento delle modifiche su AUTO se questa tabella vede molti aggiornamenti).

Differenza tra CHANGE_TRACKING e la popolazione -

CHANGE_TRACKING specifica quando e se le modifiche apportate alla tabella vengono propagate all'indice full-text. Può essere impostato su AUTO, MANUALE o OFF.

POPOLAZIONE conta solo se CHANGE_TRACKING è impostato su MANUALE o OFF.

Se impostato su MANUALE, l'utente deve attivare il comando di aggiornamento popolazione in modo che il testo completo possa indicizzare le modifiche rilevate, ovvero non vengono indicizzate automaticamente.

L'impostazione OFF specifica che SQL Server non tiene traccia dei dati modificati, indicizzando invece la tabella solo una volta durante il richiamo del comando. Se NO POPULATION è specificato con CHANGE_TRACKING impostato su OFF, gli indici full-text rimangono non popolati finché l'utente non chiama ALTER FULLTEXT INDEX con la clausola START FULLTEXT POPULATION o START POPREATION INCREMENTAL.

L'articolo MSDN CREATE FULLTEXT INDEX copre tutte queste opzioni in modo più approfondito.

+0

Ben posizionato. Dovevi andare e farmi accedere per fare +1 su di te. @fregas: assicurati di migliorare i "tuoi" per la sua buona risposta. Inoltre, questo è meritevole di una migliore risposta se non ce ne sono altri. L'ho trovato abbastanza utile. –

+0

+1 da parte mia. Meglio dell'articolo MSDN ... – Shubhojit

Problemi correlati