Aracılığıyla paylaş


Tam metin dizini popülasyon

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: Tüm popülasyonun, izleme tabanlı otomatik veya el ile nüfus ve artan zaman damgası temel alan popülasyon.

Tüm popülasyonu

Tüm bir popülasyon sırasında bir tablo ya da dizinli görünüm tüm satırlar için dizin girişleri yerleştirilmiştir.Tüm popülasyon bir tam metin dizini, yapılar temel tablo veya dizinlenmiş görünümün tüm satırlar için giriş dizin.

Varsayılan olarak,SQL Serveroluşturulduğu gibi yeni bir tam metin dizini tamamen dolduran.Ancak, tüm bir popülasyon kaynaklarını önemli miktarda kullanılmasına neden olabilir.Bu nedenle, yoğun dönemlerde tam metin dizini oluşturma, genellikle tam geciktirmek için en iyi yöntem olduğu popülasyon temel tablonun tam metin dizini, özellikle büyükse, bir boş zamana kadar.Ancak, tüm, tam metin dizinlerini doldurulur kadar dizine ait olduğu tam metin kataloğunun kullanılabilir değildir.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.Daha fazla bilgi için bkz: örnekleri "aTüm bir popülasyon çalıştırmadan tam metin dizini oluşturma"ve"B.Tüm bir popülasyon çalışan tablo, "Bu konuda daha sonra.

Değişiklik izleme tabanlı popülasyon

İsteğe bağlı olarak değişiklik izleme, ilk tam sonra tam metin dizini korumak için kullanabileceğiniz popülasyon.İlişkili değişiklik izleme için küçük yük vardır.SQL Server, onu izler değişiklikler temel tablonun bu yana geçen bir tablo tutar popülasyon.Değişiklik izleme ne zaman kullanılır,SQL Serversatır kaydını tutar temel tablo veya dizin güncelleştirmeleri, siler veya ekler. değiştirilmiş görünümüVeri değişikliklerini WRITETEXT ve UPDATETEXT tam metin dizininde yansıtılır ve değişiklik izleme çekildiği değil.

Not

Tablolar içeren birtimestampsütun artan örneğin alınma olasılığını. kullanabileceğiniz

Ne zaman değişiklik izleme etkinleştirilmişse, dizin oluşturma sırasındaSQL Serveroluşturulduktan hemen sonra yeni tam metin dizini tamamen dolduran.Bundan sonra değişiklikler izlenir ve tam metin dizinine yayılır.İki tür (CHANGE_TRACKING otomatik seçeneği) değişiklik izleme, otomatik ve el ile (CHANGE_TRACKING MANUAL seçeneği) vardır.Otomatik değişiklik izleme varsayılan davranıştır.

Nasıl tam metin dizini, aşağıdaki gibi doldurulur, değişiklik izleme türünü belirler:

  • Otomatik popülasyon

    Varsayılan olarak, veya CHANGE_TRACKING otomatik belirtirseniz, tam metin alt yapısı otomatik popülasyon tam metin dizini üzerinde.Sonra ilk tam popülasyon tamamlandığında, değişikliklerin izlenen temel tablodaki verilerde değişiklik ve izlenen değişiklikleri otomatik olarak yayılır.Tam metin dizini arka planda ancak yayılan değişikliklerin hemen dizinde yansımasını değil; böylece güncelleştirilir.

    İçin küme kadar otomatik nüfus değişiklikleri izleme

    Daha fazla bilgi için örneğin "e bakın.Otomatik değişiklik izleme, kullanılacak bir tam metin dizini bu konuda daha sonra değiştirme".

  • El ile popülasyon

    Tam-metin alt yapısı CHANGE_TRACKING MANUAL belirtirseniz, otomatik kullanan popülasyon tam metin dizini üzerinde.Sonra ilk tam popülasyon tamamlar, değişiklikleri veri temel tabloda değişiklik olarak izlenir.Bir ALTER FULLTEXT INDEX … START UPDATE yürütmek kadar ancak bunlar için tam metin dizinine yayılır değil popülasyon ifadesi.Kullanabileceğiniz SQL Server Bu çağrı için Aracısı Transact-SQL düzenli deyim.

    El ile değişiklik izlemeyi başlatmak için popülasyon

    Daha fazla bilgi için bkz: örnekleri "cEl ile tam metin dizini oluşturma değiştirme izleme"ve"D.El ile çalışan popülasyon, "Bu konuda daha sonra.

İzleme kurmak için Hayır ile'izleme değişiklik

Artan zaman damgası tabanlı popülasyon

Artımlı bir popülasyon el ile tam metin dizini yerleştirmek için alternatif bir mekanizmadır.Artımlı bir çalıştırabilirsiniz popülasyon CHANGE_TRACKING MANUAL veya kapalı olarak küme olan bir tam metin dizini.İlk popülasyon bir artan bir tam metin dizini olan popülasyon, tüm satırlar için tam karşılığı yapmak, bu dizine popülasyon.Gereksinimi artan popülasyon dizinli tablo sütun olması gerektiğini isetimestampveri türü., Birtimestampsütun yoksa, artan popülasyon gerçekleştirilemez.İsteği artan popülasyon olmayan bir tablo üzerinde birtimestampsütun sonuçları tam olarak popülasyon operasyon.Ayrıca, tablo için tam metin dizini etkileyen tüm meta veriler son nüfusun sonra değiştiyse, artan nüfusun isteklerine tam örneğin alınma olasılığını uygulanır.Bu, herhangi bir sütun, dizin veya tam metin dizini tanımları değiştirerek neden meta veriler değişiklikleri içerir.

SQL Serverkullanantimestampbu yana en son değiştirilen satırları belirlemek için sütun popülasyon.Artan popülasyon daha sonra eklenen, silinen veya sonra en son değiştirilen satırlar için tam metin dizini güncelleştirir popülasyon, veya son popülasyon sürmekte.Bir tablo ekler yüksek miktarda karşılaşırsa, artan kullanarak popülasyon daha verimli olabilir, kullanarak el ile popülasyon.

Sonunda, popülasyon tam-metin alt yapısı kayıtları yeni birtimestampdeğer.Bu değer kullanılabilir en büyüktimestampSQL alma karşılaştığı değeri.Bu değer, bir sonraki kullanılacak artan popülasyon başlar.

Artımlı bir popülasyon çalıştırmak için START artan NÜFUS yan tümcesini kullanarak FULLTEXT ALTER INDEX deyim çalıştırın.

Artımlı bir zamanlama popülasyon iş

Örnekler

Not

Örnekler bu bölümü kullanınProduction.DocumentorHumanResources.JobCandidatetablo,AdventureWorksörnek veritabanı.Bu tablo s hakkında daha fazla bilgi için bkz: belge tablo veJobCandidate tablo (AdventureWorks).

C.Tüm bir popülasyon çalıştırmadan tam metin dizini oluşturma

Aşağıdaki örnek, bir tam metin dizini oluştururProduction.Documenttablo,AdventureWorksörnek veritabanı.NO Bu örnek ile CHANGE_TRACKING OFF, kullandığı popülasyon ilk tam gecikme popülasyon.

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.Tüm bir popülasyon tablo üzerinde çalışan

Aşağıdaki örnekte, tam çalışan popülasyon,Production.DocumenttablosuAdventureWorksörnek veritabanı.

ALTER FULLTEXT INDEX ON Production.Document
   START FULL POPULATION;

c.El ile değişiklik izleme ile tam metin dizini oluşturma

Aşağıdaki örnek, değişiklik izleme, el ile kullanılacak bir tam metin dizini oluşturur popülasyon,HumanResources.JobCandidatetablosuAdventureWorksörnek veritabanı.

USE AdventureWorks;
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.El ile bir popülasyon çalıştırma

Aşağıdaki örnekte el ile bir popülasyon izlenen değişiklik tam metin dizini üzerinde çalışanHumanResources.JobCandidatetablo,AdventureWorksörnek veritabanı.

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

e.Otomatik değişiklik izlemeyi kullanmak için bir tam metin dizini değiştirme

Aşağıdaki örnekte, tam metin dizini değiştirirHumanResources.JobCandidatetablosuAdventureWorksörnek veritabanını kullanma değişiklik izlemeyi otomatik nüfus.

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