Tam metin dizinlerini doldurma

Oluşturma ve bir tam metin dizini koruma içerir adı verilen bir işlem kullanarak dizin doldurma bir nüfusu (olarak da bilinen bir tarama).

Bu Konuda

  • Nüfus türleri

  • Tam metin dizinlerini doldurma örnekleri

  • Oluşturma veya artımlı popülasyon zamanlama değiştirme

  • Bir tam metin popülasyonu (gezinme) hataları giderme

Nüfus türleri

SQL Servernüfus aşağıdaki türlerini destekler: tam popülasyon, değişiklik izleme tabanlı otomatik veya el ile popülasyon ve zaman damgası tabanlı artımlı popülasyon.

Tam bir popülasyon

Tam bir popülasyon sırasında bir tablo veya dizin oluşturulmuş görünüm tüm satırlar için dizin girişlerini yerleşiktir. Tam bir popülasyon tam metin dizini oluşturur girişleri temel tablo veya dizin oluşturulmuş görünüm tüm satırlar için dizin.

Varsayılan olarak, SQL Serveroluşturulduğu en kısa sürede yeni bir tam metin dizini tamamen dolduran. Ancak, tam bir popülasyon önemli miktarda kaynakları tüketebilir. Özellikle temel tablonun tam metin dizin büyükse, bu nedenle, yoğun dönemlerde bir tam metin dizin oluşturma, genellikle yoğun bir zamana kadar tam bir popülasyon geciktirmek için en iyi yöntem olduğunda. Tüm tam metin dizinleri doldurulur kadar ancak ait olduğu dizin tam metin kataloğu kullanılamaz. Hemen doldurma olmadan bir tam metin dizini oluşturmak için CHANGE_TRACKING off, hayır popülasyon yan tümcesinde create fulltext INDEX deyimi belirtin. CHANGE_TRACKING manual belirtirseniz, tam metin altyapısı deyimi kullanır. SQL ServerTAM bir popülasyon başlatın ya da start ARTIMLI popülasyon yan tümcesini kullanarak bir alter fulltext INDEX deyimi yürütme kadar yeni tam metin dizin doldurmak değildir. Daha fazla bilgi için bkz: örnekleri "a. Tam bir popülasyon çalıştırmadan bir tam metin dizin oluşturma" ve "b. Tam bir popülasyon tablosu üzerinde çalışıyor" Bu konudaki.

[Yukarı]En

Değişiklik izleme tabanlı popülasyonu

Isteğe bağlı olarak, bir tam metin dizini sonra ilk tam nüfusu korumak için değişiklik izlemeyi kullanabilirsiniz. Orada yükü değişiklik nedeniyle izleme ile ilgili küçük bir SQL Serverbir tablo içinde o izler değişiklikler temel tablo beri son nüfus korur. Değişiklik izleme kullanıldığında, SQL Servertemel tablo veya dizin oluşturulmuş görünüm, güncelleştirmeler, siler, tarafından değiştirilmiş satırları kaydını tutar veya ekler. Veri değişiklikleri WRITETEXT ve updatetext üzerinden tam metin dizini içinde yansıtılmaz ve değişiklik izleme ile çekilen değil.

[!NOT]

Tablolar içeren bir timestampsütunu, artan nüfus kullanabilirsiniz.

Dizin oluşturma sırasında değişiklik izleme etkinleştirildiğinde SQL Servertamamen yeni tam metin dizin oluşturulduktan hemen sonra doldurur. Bundan sonra değişiklikler izlenir ve tam metin dizinine yayılır. Değişiklik izleme, otomatik (CHANGE_TRACKING Otomatik seçeneği) ve manuel (CHANGE_TRACKING el ile seçeneği) iki türü vardır. Otomatik değişiklik izleme varsayılan davranıştır.

Değişiklik izleme nasıl tam metin dizini, aşağıdaki gibi doldurulur belirler:

  • Otomatik popülasyon

    Varsayılan olarak, veya CHANGE_TRACKING otomatik belirtirseniz, tam metin altyapısı otomatik popülasyon tam metin dizini kullanır. İlk tam popülasyon tamamlandıktan sonra veriler temel tabloda değiştirilir ve izlenen değişiklikleri otomatik olarak yayılır gibi değişiklikler izlenir. Tam metin dizini yayılan değişiklikleri hemen dizinde yansıması değil bu yüzden arka planda, ancak güncelleştirilir.

    Otomatik popülasyon ile değişiklikleri izleme yukarı ayarlamak için

    Daha fazla bilgi için bkz: örnek "e. Otomatik değişiklik izleme kullanmak için tam metin dizini değiştirerek " Bu konudaki.

  • El ile popülasyon

    CHANGE_TRACKING manuel belirtirseniz, tam metin altyapısı tam metin dizini el ile popülasyon kullanır. İlk tam popülasyon tamamlandıktan sonra verileri temel tabloda değiştirilmiş olarak değişiklikler izlenir. alter fulltext dizin... idam kadar ancak onlar için tam metin dizini yayılmaz Güncelleştirme popülasyon başlatın deyimi. Sen-ebilmek kullanma SQL ServerBu çağrı için aracı Transact-SQLdeyimi belirli aralıklarla.

    Değişiklikleri el ile popülasyon ile izleme başlatmak için

    Daha fazla bilgi için bkz: örnekleri "c. Bir tam metin dizini el ile değişiklik izleme oluşturma" ve "ö. El ile popülasyon çalıştıran " Bu konudaki.

Değişiklik izlemeyi devre dışı bırakmak için

[Yukarı]En

Zaman damgası tabanlı artımlı popülasyon

Artımlı popülasyon, el ile bir tam metin dizini yerleştirmek için kullanılan alternatif bir mekanizmadır. Sen-ebilmek koşmak bir artımlı popülasyon için bir tam metin dizini olan CHANGE_TRACKING kılavuz veya kapalı olarak ayarlayın. İlk nüfus üzerinde bir tam metin dizini bir artımlı popülasyon ise, tüm satırları, tam bir popülasyon için eşdeğer hale dizin oluşturur.

Dizinli tablo sütunu olmalıdır artımlı popülasyon gereksinimi olduğunu timestampveri türü. Eğer bir timestampsütun yok, artımlı popülasyon gerçekleştirilemez. Artımlı popülasyon bir tablo için bir istek bir timestampsütun sonuç tam bir popülasyon operasyonda. Ayrıca, tablo için tam metin dizini etkileyen herhangi bir meta veri beri son nüfus değiştiyse, artımlı popülasyon isteklerini tam nüfus uygulanır. Bu, herhangi bir sütun, dizin veya tam metin dizini tanımları değiştirerek neden meta veri değişiklikleri içerir.

SQL Serverkullandığı timestampberi son nüfus değiştirilen satırları tanımlamak için sütun. Artımlı popülasyon sonra eklenen, silinen veya sonra son nüfus veya son popülasyon sürmekte iken satır için tam metin dizini güncelleştirir. Tablo ekler büyük miktarda karşılaşırsa, artımlı popülasyon kullanarak daha verimli olabilir, el ile popülasyon kullanarak.

Nüfusu sonunda, tam metin altyapısı kayıtları yeni bir timestampdeğer. Bu değer büyük timestampsql Toplayıcı karşılaştı değer. Bu değer, bir sonraki artımlı popülasyon başladığında kullanılacak.

Artımlı popülasyon çalıştırmak için start ARTIMLI popülasyon yan tümcesini kullanarak bir alter fulltext INDEX deyimi yürütme.

[Yukarı]En

Tam metin dizinlerini doldurma örnekleri

[!NOT]

Bu örnekler bölümünde kullanım Production.Documentya HumanResources.JobCandidatetablo AdventureWorksörnek veritabanı.

A.Tam bir popülasyon çalıştırmadan tam metin dizini oluşturma

Aşağıdaki örnek bir tam metin dizini oluşturur Production.Documenttablo AdventureWorksörnek veritabanı. Bu örnek, ile CHANGE_TRACKING off, no ilk tam popülasyon geciktirmek için nüfus kullanır.

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.Masada tam bir popülasyon çalıştıran

Aşağıdaki örnekte tam bir popülasyon üzerinde çalıştığı Production.Documenttablo AdventureWorksörnek veritabanı.

ALTER FULLTEXT INDEX ON Production.Document
   START FULL POPULATION;

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

Aşağıdaki örnek, değişiklik üzerinde el ile popülasyon ile izleme kullanacağı bir tam metin dizini oluşturur HumanResources.JobCandidatetablo AdventureWorksö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 popülasyon çalıştıran

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

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

E.Otomatik değişiklik izleme kullanmak için tam metin dizini değiştirme

Aşağıdaki örnek, tam metin dizini değiştirir HumanResources.JobCandidatetablo AdventureWorksdeğişiklik izlemeyi otomatik popülasyon ile kullanılacak örnek veritabanını.

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

[Yukarı]En

Oluşturma veya artımlı popülasyon zamanlama değiştirme

Oluşturmak veya değiştirmek için Management Studio'yu artımlı popülasyon zamanlama

  1. Nesne Explorer'da sunucuyu genişletin.

  2. Genişletme veritabanlarıve tam metin dizini içeren veritabanı genişletin.

  3. Genişletme tablo.

Tam metin dizini olan tanımlanan, seçin tabloyu sağ tıklatın tam metin dizinive tam metin dizini bağlam menüsü, tıklayın Özellikler. Bu açılır tam metin dizini özelliklerini iletişim kutusu.

  1. İçinde sayfa bölmesinde seçin programları.

    Temel tablo veya dizin oluşturulmuş görünüm tam metin dizini bir artımlı tablo popülasyon başlar bir SQL Server Agent iş için zamanlamaları yönetmek veya oluşturmak için bu sayfayı kullanın.

    Önemli notÖnemli

    Temel tablo veya görünümü bir sütun içermiyorsa timestampveri türü, tam bir popülasyon gerçekleştirilir.

    Seçenekler aşağıdaki gibidir:

    • Yeni bir zamanlama oluşturmak için tıklatın Yeni.

      Bu açılır New Full-Text Indexing Table Schedule iletişim kutusunda, bir zamanlama oluşturabileceğiniz. Zamanlamayı kaydetmek için tıklatın Tamam.

      Önemli notÖnemli

      SQL Server Agent işi (Başlat artımlı tablo popülasyon database_name. table_name), çıktıktan sonra yeni bir zamanlama ile ilişkili olduğu Tam metin dizini özellikler iletişim kutusu. Birden çok zamanlama için tam metin dizini oluşturma, hepsi aynı işi kullanın.

    • Bir programı değiştirmek için bunu seçin ve tıklatın düzenleme.

      Bu açılır New Full-Text Indexing Table Schedule iletişim kutusunda, burada zamanlamayı değiştirebilirsiniz.

      [!NOT]

      Bir iş değiştirme hakkında daha fazla bilgi için bkz: İş değiştir.

    • Zamanlama kaldırmak için bunu seçin ve tıklayın silmek.

  2. Tamam’ı tıklatın.  

[Yukarı]En

Bir tam metin popülasyonu (gezinme) hataları giderme

Tarama sırasında bir hata ortaya çıktığında, tam metin arama tarama günlüğü tesis oluşturur ve bir düz metin dosyası tarama günlüğünü tutar. Her tarama günlüğü için belirli bir tam metin kataloğu karşılık gelir. Belirli bir örneğinin varsayılan gezinme günlükleri tarafından bu durumda %ProgramFiles%\Microsoft SQL Server\MSSQL11 ilk örneği yer almaktadır.mssqlserver\mssql\log ağıl. Gezinme günlük dosyası aşağıdaki adlandırma düzeni aşağıdaki gibidir:

sqlft<DatabaseID><FullTextCatalogID>.LOG<n>

  • <DatabaseID>
    Veritabanı Kımlığı. <dbid>sıfır dolgulu bir beş basamaklı bir sayıdır.

  • <FullTextCatalogID>
    Tam metin kataloğu kimliği. <catid>sıfır dolgulu bir beş basamaklı bir sayıdır.

  • <n>
    Bir gösteren bir tamsayı olduğundan veya daha fazla gezinme günlükleri aynı tam metin kataloğu.

Örneğin, veritabanı veritabanı Kımlığı ile tarama günlük dosyası sqlft0000500008.2 olur = 5 ve tam metin kataloğu Kımlığı = 8. 2 Dosya adının sonundaki iki tarama günlük dosyaları bu veritabanı/Katalog çifti için olduğunu gösterir.

[Yukarı]En

Ayrıca bkz.

Başvuru

sys.dm_fts_index_population (Transact-sql)

fulltext INDEX (Transact-sql) oluştur

alter fulltext INDEX (Transact-sql)

Kavramlar

Tam metin arama ile başlamak

Oluşturun ve tam metin dizinleri Yönet