Populacji indeksu pełnotekstowego

Creating and maintaining a full-text index involves populating the index by using a process called a population (also known as a crawl).SQL Server supports the following types of population: pełne zapełnianie, zmienianie śledzenia zapełnianie automatyczne lub ręczne i przyrostowe zapełnianie na podstawie sygnatury czasowej.

Pełna populacji

Podczas pełnego zapełnianie pozycje indeksu są wbudowane w wierszach tabela lub indeksowany widok.Pełna zapełnianie indeksu pełnotekstowego, kompilacje indeksowane zapisy wszystkich wierszy z tabela bazowa lub indeksowany widok.

Domyślnie SQL Server całkowicie wypełnia nowego indeksu pełnotekstowego zaraz po jej utworzeniu.Jednak pełna zapełnianie może wykorzystać znaczną ilość zasobów.Dlatego podczas tworzenia indeksu pełnotekstowego w okresach szczytowych, jest często najlepiej opóźnienia pełnego zapełnianie aż do szczytu czas, szczególnie jeśli jest duża tabela bazowa indeksu pełnotekstowego.Jednakże wykaz pełnotekstowy, do której należy dany indeks nie jest używany, dopóki nie zostaną wypełnione wszystkie jej indeksy pełnotekstowe.To create a full-text index without populating it immediately, specify the CHANGE_TRACKING OFF, NO POPULATION clause in your CREATE FULLTEXT INDEX Transact-SQL statement.SQL Server will not populate the new full-text index until you execute an ALTER FULLTEXT INDEX Transact-SQL statement using the START FULL POPULATION or START INCREMENTAL POPULATION clause.Aby uzyskać więcej informacji zobacz przykłady "A.Tworzenie indeksu pełnotekstowego bez uruchamiania pełnej zapełnianie" i "B.Uruchamianie pełnego zapełnianie w tabela" w dalszej części tego tematu.

Zmiana opartej na śledzeniu populacji

Opcjonalnie można utrzymać indeksu pełnotekstowego po jego początkowej zapełnianie pełnego śledzenia zmian.Istnieje małe obciążenie związane z zmian, ponieważ SQL Server utrzymuje tabeli, w którym śledzi zmiany w tabela bazowa od czasu ostatniego zapełnianie.Gdy używana jest śledzenie zmian, SQL Server rejestrują wiersze w tabela podstawowej lub indeksowany widok zostały zmodyfikowane przez aktualizacje, usuwa lub wstawia.Zmiany danych poprzez WRITETEXT i UPDATETEXT nie są uwzględniane w indeksie pełnego tekstu i nie są zabierani z śledzenia zmian.

Ostrzeżenie

Dla tabel zawierających timestamp kolumna, można użyć populacji przyrostowe.

Gdy włączone jest oledzenie zmian podczas tworzenia indeksu SQL Server całkowicie wypełnia nowego indeksu pełnotekstowego, niezwłocznie po jej utworzeniu.W okresie późniejszym zmiany są śledzone i propagowane do indeksu pełnotekstowego.Istnieją dwa rodzaje zmian, automatyczne (opcja CHANGE_TRACKING AUTO) i ręczne (opcja RĘCZNEGO CHANGE_TRACKING).Automatyczne śledzenie zmian jest zachowanie domyślne.

Typ śledzenia zmian Określa, jak indeks pełnotekstowy jest wypełniana, jak następuje:

  • Automatyczne zapełnianie

    Domyślnie lub Jeśli określisz CHANGE_TRACKING AUTO aparat pełnotekstowe używa automatycznego zapełnianie na indeks pełnotekstowy.Po zakończeniu wstępnej pełnej zapełnianie modyfikacji danych w tabela bazowa i prześledzone zmiany są automatycznie przenoszone są śledzone zmiany.Indeks pełnotekstowy jest aktualizowany w tle, jednak tak propagowany zmiany nie może być odzwierciedlone natychmiast w indeksie.

    Aby zestaw się śledzenie zmian zapełnianie automatyczne

    Aby uzyskać więcej informacji zobacz przykład "E.Zmienianie indeks pełnotekstowy umożliwia automatyczne śledzenie, zmian" w dalszej części tego tematu.

  • Ręczne zapełnianie

    Jeśli określisz RĘCZNY CHANGE_TRACKING, aparat pełnotekstowe używa instrukcji zapełnianie na indeks pełnotekstowy.Po zakończeniu wstępnej pełnej zapełnianie, zmiany są śledzone, zmienione dane w tabela bazowa.Jednak te nie są propagowane do indeksu pełnotekstowego aż do wykonać ALTER PEŁNOTEKSTOWY indeks … Rozpocznij AKTUALIZACJĘ populacji instrukcja.Można użyć SQL Server to agenta Transact-SQL instrukcja okresowo.

    Aby uruchomić śledzenie zmian zapełnianie ręczne

    Aby uzyskać więcej informacji zobacz przykłady "C.Tworzenie indeksu pełnotekstowego z Ręczne śledzenie zmian" i "D.Uruchamianie ręczne zapełnianie" w dalszej części tego tematu.

Aby wyłączyć śledzenie zmian

Przyrostowe populacji na podstawie sygnatury czasowej

Przyrostowe zapełnianie jest alternatywny mechanizm ręcznie wypełniania indeksu pełnotekstowego.Można uruchomić przyrostowe zapełnianie dla indeksu pełnotekstowego, który ma CHANGE_TRACKING zestaw na RĘCZNY lub OFF.Jeśli pierwszy ludności na indeks pełnotekstowy przyrostowe zapełnianie, indeksuje wszystkie wiersze dokonywania równoważne pełnego zapełnianie.

Wymóg zapełnianie przyrostowe jest że indeksowanej tabela musi zawierać kolumna z timestamp typu danych.Jeśli timestamp Kolumna nie istnieje, nie można wykonać przyrostową zapełnianie.Żądanie przyrostowe ludności na tabela bez timestamp kolumna wyniki w operacji pełne zapełnianie.Ponadto wszystkie metadane wpływa na indeks pełnotekstowy dla tabela zostały zmienione od ostatniego zapełnianie, implementowane zapełnianie przyrostowych żądań jako pełna zapełnianie.Obejmuje to zmiany metadane spowodowanych przez zmianę dowolnej kolumna, indeks lub definicji indeksu pełnotekstowego.

SQL Serverużywa timestamp kolumna do identyfikowania wierszy, które uległy zmianie od czasu ostatniego zapełnianie.Przyrostowe zapełnianie następnie aktualizuje indeks pełnotekstowy dla wierszy dodane, usunięte lub zmodyfikowane po ostatnim zapełnianie lub podczas ostatniego zapełnianie była w toku.Jeśli tabela napotka dużej wstawia, korzystanie z zapełnianie przyrostowe może być bardziej efektywne, za pomocą ręcznego zapełnianie.

Na końcu zapełnianie rejestruje nowy aparat pełnego tekstu timestamp wartości.Wartość ta jest największą timestamp wartość napotkał SQL programu zbierającego.Ta wartość będzie używana podczas uruchamiania kolejnych przyrostowe zapełnianie.

Aby uruchomić przyrostowe zapełnianie, wykonać instrukcja ALTER indeks PEŁNOTEKSTOWY używając klauzula START PRZYROSTOWE zapełnianie.

Zaplanowane zadanie zapełnianie przyrostowe

Przykłady

Ostrzeżenie

Użyj sekcji przykłady w tym Production.Document lub HumanResources.JobCandidate tabela AdventureWorks2008R2 przykładowej bazy danych.

A.Tworzenie indeksu pełnotekstowego bez uruchamiania pełnej zapełnianie

Poniższy przykład tworzy indeks pełnotekstowy na Production.Document tabela AdventureWorks2008R2 przykładowej bazy danych.W tym przykładzie użyto Z CHANGE_TRACKING OFF, nr zapełnianie opóźnienia wstępnej pełnej zapełnianie.

CREATE UNIQUE INDEX ui_ukDoc ON Production.Document(DocumentID);
CREATE FULLTEXT CATALOG AW_Production_FTCat;
CREATE FULLTEXT INDEX ON Production.Document
(
    Document                         --Full-text index column name 
        TYPE COLUMN FileExtension    --Name of column that contains file type information
        Language 1033                 --1033 is LCID for the English language
)
    KEY INDEX ui_ukDoc
    ON AW_Production_FTCat
    WITH CHANGE_TRACKING OFF, NO POPULATION;
GO

B.Uruchamianie pełnego zapełnianie w tabela

Poniższy przykład działa pełna zapełnianie na Production.Document tabela AdventureWorks2008R2 przykładowej bazy danych.

ALTER FULLTEXT INDEX ON Production.Document
   START FULL POPULATION;

C.Tworzenie indeksu pełnotekstowego z Ręczne śledzenie zmian

Poniższy przykład tworzy indeks pełnotekstowy, używające zmian ręcznych zapełnianie na HumanResources.JobCandidate tabela AdventureWorks2008R2 przykładowej bazy danych.

USE AdventureWorks2008R2;
GO
CREATE UNIQUE INDEX ui_ukJobCand ON HumanResources.JobCandidate(JobCandidateID);
CREATE FULLTEXT CATALOG ft AS DEFAULT;
CREATE FULLTEXT INDEX ON HumanResources.JobCandidate(Resume) 
   KEY INDEX ui_ukJobCand 
   WITH CHANGE_TRACKING=MANUAL;
GO

D.Uruchamianie ręczne zapełnianie

Poniższy przykład jest uruchamiana ręcznie zapełnianie na indeks pełnotekstowy śledzone zmiany z HumanResources.JobCandidate tabela AdventureWorks2008R2 przykładowej bazy danych.

USE AdventureWorks2008R2;
GO
ALTER FULLTEXT INDEX ON HumanResources.JobCandidate START UPDATE POPULATION;
GO

E.Zmienianie indeksu pełnotekstowego, aby używać śledzenia zmian automatyczne

Poniższy przykład przedstawia zmianę indeksu pełnotekstowego HumanResources.JobCandidate tabela AdventureWorks2008R2 przykładowej bazy danych używać zmian z automatycznego zapełnianie.

USE AdventureWorks2008R2;
GO
ALTER FULLTEXT INDEX ON HumanResources.JobCandidate SET CHANGE_TRACKING AUTO;
GO