Tam Metin Aramayı Yükselt (SQL Server Araması)

Şunlar için geçerlidir:SQL ServerAzure SQL Veritabanı

SQL Server, kurulum sırasında veya SQL Server 2005 (9.x) ve önceki sürümlerden veritabanı dosyalarını ve tam metin kataloglarını eklediğinizde, geri yüklediğinizde veya kopyaladığınızda tam metin aramalarını yükselter.

Sunucu örneğini yükseltme

Yerinde yükseltme için, SQL Server örneği, SQL Server'ın eski sürümüyle yan yana kurulur ve veriler taşınır. SQL Server'ın eski sürümünde tam metin araması yüklüyse, tam metin aramanın yeni bir sürümü otomatik olarak yüklenir. Yan yana yükleme, aşağıdaki bileşenlerin her birinin SQL Server'ın örnek düzeyinde mevcut olduğu anlamına gelir.

Sözcük ayırıcılar, kök bulucular ve filtreler

Her örnek artık bu bileşenlerin işletim sistemi sürümüne bağlı kalmak yerine kendi kelime ayırıcılarını, kök analizcilerini ve filtrelerini kullanır. Bu bileşenlerin örnek düzeyinde kaydedilmesi ve yapılandırılması da daha kolaydır. Daha fazla bilgi için bkz Arama için sözcük ayırıcıları ve kök ayırıcılarını yapılandırma ve yönetme (SQL Server) ve Arama için Filtreleri Yapılandırma ve Yönetme.

Filtre servis sunucusu

Tam metin filtresi daemon konakları, Full-Text Altyapısının bütünlüğünden ödün vermeden, dizin ve sorgu için kullanılan sözcük ayırıcılar, kök ayırıcılar ve filtreler gibi genişletilebilir dış bileşenleri güvenli bir şekilde yükleyen ve yönlendiren işlemlerdir. Sunucu örneği, tüm çok iş parçacıklı filtreler için çok iş parçacıklı bir işlem ve tüm tek iş parçacıklı filtreler için tek iş parçacıklı bir süreç kullanır.

FDHOST Launcher hizmeti (MSSQLFDLauncher), hizmet hesabı bilgilerini belirli bir SQL Server örneğinin filtre daemon konak süreçlerine aktarır. Hizmet hesabını ayarlama hakkında bilgi için bkz. Tam Metin Filtre Daemon Başlatıcısı için Hizmet Hesabını Ayarlama.

SQL Server 2005 yükseltme uyumluluğu

Tam metin kataloğu, bir grup tam metin dizini içeren mantıksal veya sanal bir nesnedir. Bu nedenle, yeni bir tam metin kataloğu fiziksel yolu olan bir veritabanı dosyası olarak değerlendirilmez. Ancak, SQL Server 2005'ten (9.x) yükseltme yaparsanız, veri dosyalarını içeren tüm tam metin katalogları için aynı diskte yeni bir dosya grubu oluşturulur.

Bu yordam, yükseltmeden sonra eski disk G/Ç davranışını korur. Bu katalogdaki tüm tam metin dizinleri, kök yol varsa yeni dosya grubuna yerleştirilir. Eski tam metin kataloğu yolu geçersizse yükseltme, tam metin dizinini temel tabloyla aynı dosya grubunda veya bölümlenmiş bir tablo için birincil dosya grubunda tutar.

Tam metin yükseltme seçenekleri

Bir SQL Server örneğini yükseltirken, kullanıcı arabirimi aşağıdaki tam metin yükseltme seçeneklerinden birini seçmenize olanak tanır. Bu seçenekler yalnızca SQL Server 2005 (9.x) veritabanlarında kullanılabilir.

İthalat

Tam metin katalogları içeri aktarılır. Genellikle içeri aktarma işlemi yeniden oluşturma işleminden önemli ölçüde daha hızlıdır. Örneğin, yalnızca bir CPU kullanırken içeri aktarma işlemi yeniden derlemeden yaklaşık 10 kat daha hızlı çalışır. Ancak, içeri aktarılan bir tam metin kataloğu, SQL Server'ın en son sürümüyle yüklenen yeni sözcük ayırıcılarını kullanmaz. Sorgu sonuçlarında tutarlılık sağlamak için tam metin kataloglarının yeniden oluşturulması gerekir.

Not

Yeniden derleme çok iş parçacıklı modda çalıştırılabilir ve 10'dan fazla CPU varsa, tüm CPU'ları kullanmasına izin verdiğiniz takdirde, yeniden derleme içeri aktarma işleminden daha hızlı çalışabilir.

Tam metin kataloğu kullanılamıyorsa, ilişkili tam metin dizinleri yeniden oluşturulur.

Tam metin dizinini içeri aktarmanın etkisi hakkında bilgi için, bu makalenin devamında yer alan Tam metin yükseltme seçeneğini seçmeyle ilgili dikkat edilmesi gerekenler bölümüne bakın.

Rebuild

Tam metin katalogları, yeni ve gelişmiş sözcük ayırıcıları kullanılarak yeniden oluşturulur. Dizinlerin yeniden oluşturulması biraz zaman alabilir ve yükseltmeden sonra önemli miktarda CPU ve bellek gerekebilir.

Ayarla

Tam metin katalogları sıfırlanır. SQL Server 2005'ten (9.x) yükseltirken, tam metin katalog dosyaları kaldırılır, ancak tam metin katalogları ve tam metin dizinleri için meta veriler korunur. Yükseltildikten sonra, değişiklik izleme için tüm tam metin dizinleri devre dışı bırakılır ve gezinmeler otomatik olarak başlatılmaz. Yükseltme tamamlandıktan sonra el ile tam popülasyon verene kadar katalog boş kalır.

Tam metin yükseltme seçeneği belirleme konusunda dikkat edilmesi gerekenler

Yükseltmeniz için yükseltme seçeneğini seçerken aşağıdakileri göz önünde bulundurun:

  • Sorgu sonuçlarında tutarlılık gerekiyor mu?

    SQL Server, Full-Text ve AnlamSal Arama tarafından kullanılmak üzere yeni sözcük ayırıcılar yükler. Sözcük ayırıcıları hem dizin oluşturma zamanında hem de sorgu zamanında kullanılır. Tam metin kataloglarını yeniden oluşturmazsanız, arama sonuçlarınız tutarsız olabilir. SQL Server'ın önceki bir sürümündeki sözcük ayırıcısı ve geçerli sözcük ayırıcısı tarafından farklı şekilde bozulan bir tümceciği arayan bir tam metin sorgusu gönderirseniz, tümceciği içeren bir belge veya satır alınamayabilir. Bunun nedeni, dizine alınan tümceciklerin sorgunun kullandığından farklı mantık kullanılarak bozulmasıdır. Çözüm, dizin zamanı ve sorgu zamanı davranışının aynı olması için tam metin kataloglarını yeni sözcük ayırıcılarıyla yeniden doldurmayı (yeniden derlemeyi) sağlar. Bunu yapmak için Yeniden Oluştur seçeneğini belirleyebilir veya İçeri Aktar seçeneğini belirledikten sonra el ile yeniden oluşturabilirsiniz.

  • Tamsayı tam metin anahtar sütunları üzerinde oluşturulmuş tam metin dizinleri var mıydı?

    Yeniden derleme, bazı durumlarda güncellenmiş tam metin dizininin sorgu performansını artıran sistem içi iyileştirmeler yapar. Özellikle, temel tablonun tam metin anahtar sütununun bir tamsayı veri türü olduğu tam metin dizinleri içeren tam metin kataloglarınız varsa, yeniden derleme, yükseltmeden sonra tam metin sorgularının ideal performansını elde eder. Bu durumda, Yeniden Oluştur seçeneğini kullanmanızı kesinlikle öneririz.

    Not

    Tam metin dizinleri için, tam metin anahtarı olarak hizmet veren sütunun tamsayı veri türü olmasını öneririz. Daha fazla bilgi için bkz. Full-Text Dizinlerinin Performansını Geliştirme.

  • Sunucu örneğinizi çevrimiçi hale almanın önceliği nedir?

    Yükseltme sırasında içeri aktarma veya yeniden oluşturma işlemi çok fazla CPU kaynağı gerektirir ve bu durum sunucu örneğinin geri kalanının yükseltilip çevrimiçi hale gelmesini geciktirir. Sunucu örneğini mümkün olan en kısa sürede çevrimiçi hale getirmek önemliyse ve yükseltmeden sonra el ile bir popülasyon çalıştırmak istiyorsanız Sıfırlama uygundur.

Tam metin dizinini içeri aktardıktan sonra tutarlı sorgu sonuçları elde edin

SQL Server 2005 (9.x) veritabanı yükseltilirken tam metin kataloğu içeri aktarıldıysa, eski ve yeni sözcük ayırıcılarının davranışındaki farklılıklar nedeniyle sorgu ile tam metin dizini içeriği arasındaki uyuşmazlıklar oluşabilir. Bu durumda, sorgularla tam metin dizini içeriği arasında toplam eşleşmeyi garanti etmek için aşağıdaki seçeneklerden birini belirleyin:

  • ALTER FULLTEXT CATALOG ile tam metin dizinini içeren tam metin kataloğunu yeniden oluşturun:

    ALTER FULLTEXT CATALOG <catalog_name> REBUILD;
    
  • ALTER FULLTEXT INDEX komutunu kullanarak tam metin dizininde TAM ÖRNEKLEME gerçekleştirin.

    ALTER FULLTEXT INDEX ON <table_name> START FULL POPULATION;
    

Sözcük ayırıcıları ve kök bulucular hakkında daha fazla bilgi için bkz. Arama (SQL Server) için sözcük ayırıcıları ve kök bulucuları yapılandırma ve yönetme.

Gürültü sözcüğü dosyalarını durdurma listelerine yükseltme

Veritabanı SQL Server 2005'ten (9.x) yükseltildiğinde, kirli sözcük dosyaları artık kullanılmaz. Ancak, eski kirli sözcük dosyaları FTDATA\FTNoiseThesaurusBak klasöründe depolanır ve bunları daha sonra ilgili SQL Server durdurma listelerini güncelleştirirken veya oluştururken kullanabilirsiniz.

SQL Server 2005'ten (9.x) yükselttikten sonra:

  • SQL Server 2005 (9.x) yüklemenize hiç kirli sözcük dosyası eklemediyseniz, değiştirmediyseniz veya silmediyseniz sistem durdurma listesi gereksinimlerinizi karşılamalıdır.

  • Kirli sözcük dosyalarınız SQL Server 2005'te (9.x) değiştirildiyse, yükseltme sırasında bu değişiklikler kaybolur. Bu güncelleştirmeleri yeniden oluşturmak için bu değişiklikleri ilgili durdurma listesinde el ile yeniden oluşturmanız gerekir. Daha fazla bilgi için bkz. ALTER FULLTEXT STOPLIST.

  • Tam metin dizinlerinize herhangi bir stopword uygulamak istemiyorsanız (örneğin, SQL Server 2005 (9.x) yüklemenizde gürültü kelime dosyalarınızı silmiş veya kaldırmışsanız), yükseltilen her tam metin dizini için durdurma listesini iptal etmeniz gerekir. Aşağıdaki Transact-SQL deyimini çalıştırın (veritabanı yükseltilen veritabanının adıyla ve tablotabloadıyla değiştirerek):

    Use database;
    ALTER FULLTEXT INDEX ON table
       SET STOPLIST OFF;
    GO
    

    STOPLIST OFF yan tümcesi, stop-word filtrelemesini kaldırır ve kirli olarak kabul edilen sözcükleri filtrelemeden tablonun bir popülasyonunu tetikler.

Yedeklenen ve içe aktarılan tam metin katalogları

Yükseltme sırasında yeniden oluşturulan veya sıfırlanabilen tam metin katalogları için (ve yeni tam metin katalogları için), tam metin kataloğu mantıksal bir kavramdır ve bir dosya grubunda yer almaz. Bu nedenle, bir tam metin kataloğunu yedeklemek için, kataloğun tam metin dizinini içeren her dosya grubunu tanımlamanız ve her birini birer birer yedeklemeniz gerekir. Daha fazla bilgi için bkz . Tam metin kataloglarını ve dizinlerini yedekleme ve geri yükleme.

SQL Server 2005'ten (9.x) içeri aktarılan tam metin katalogları için, tam metin kataloğu kendi dosya grubundaki bir veritabanı dosyasıdır. Tam metin katalogları için SQL Server 2005 (9.x) yedekleme işlemi, MSFTESQL hizmetinin SQL Server'da mevcut olmaması dışında da geçerlidir. SQL Server 2005 (9.x) işlemi hakkında bilgi için bkz. SQL Server 2005 Books Online'da Full-Text Kataloglarını Yedekleme ve Geri Yükleme.

Veritabanını yükseltirken tam metin dizinlerini geçirme

SQL Server'ın önceki bir sürümündeki veritabanı dosyaları ve tam metin katalogları ekleme, geri yükleme veya Veritabanı Kopyalama Sihirbazı kullanılarak mevcut bir örneğe yükseltilebilir. SQL Server 2005 (9.x) tam metin dizinleri varsa içe aktarılır, sıfırlanır veya yeniden oluşturulur. upgrade_option sunucu özelliği, sunucu örneğinin bu veritabanı yükseltmeleri sırasında hangi tam metin yükseltme seçeneğini kullandığını belirtir.

Herhangi bir SQL Server 2005 (9.x) veritabanını daha yeni bir örneğe ekledikten, geri yükledikten veya kopyaladıktan sonra veritabanı hemen kullanılabilir duruma gelir ve ardından otomatik olarak yükseltilir. Dizine alınan veri miktarına bağlı olarak içeri aktarma işlemi birkaç saat sürebilir ve yeniden oluşturma işlemi 10 kat daha uzun sürebilir. Yükseltme seçeneği içeri aktaracak şekilde ayarlandığında, tam metin kataloğu kullanılamıyorsa, ilişkili tam metin dizinleri yeniden oluşturulur.

Sunucu örneğinde tam metin yükseltme davranışını değiştirme

  • Transact-SQL: upgrade_option eylemini kullanın

  • SQL Server Management Studio: Sunucu Özellikleri iletişim kutusunun Full-Text Yükseltme Seçeneğini kullanın. Daha fazla bilgi için bkz. Yönet ve İzle Full-Text Sunucu Örneği Arama.

SQL Server 2005 (9.x) tam metin kataloğunu geri yüklemek için dikkat edilmesi gerekenler

Sql Server 2005 (9.x) veritabanından tam metin verilerini yükseltmenin bir yöntemi, tam veritabanı yedeğini sql Server'ın daha yeni bir örneğine geri yüklemektir.

SQL Server 2005 (9.x) tam metin kataloğunu içeri aktarırken veritabanını ve katalog dosyasını yedekleyebilir ve geri yükleyebilirsiniz. Davranış, SQL Server 2005 (9.x) ile aynıdır:

  • Tam veritabanı yedeklemesi tam metin kataloğunu içerir. Tam metin kataloğuna başvurmak için SQL Server 2005 (9.x) dosya adını sysft_+katalog-adıkullanın.

  • Tam metin kataloğu çevrimdışıysa yedekleme başarısız olur.

SQL Server 2005 (9.x) tam metin kataloglarını yedekleme ve geri yükleme hakkında daha fazla bilgi için bkz. Tam metin katalogları ve dizinleri yedekleme ve geri yükleme ve SQL Server 2005 (9.x) Books Online'da Dosya Yedekleme ve Geri Yükleme ve Full-Text Katalogları .

Veritabanı daha yeni bir SQL Server örneğine geri yüklendiğinde, tam metin kataloğu için yeni bir veritabanı dosyası oluşturulur. Bu dosyanın varsayılan adı ftrow_katalog-adı.ndf'dir. Örneğin, katalog-adı , SQL Server veritabanı dosyasının varsayılan adı cat1olacaktır. Ancak varsayılan ad hedef dizinde zaten kullanılıyorsa, yeni veritabanı dosyası ftrow_katalog-adı{GUID}.ndfolarak adlandırılır; burada GUID yeni dosyanın Genel Benzersiz Tanımlayıcısı olur.

Kataloglar içeri aktarıldıktan sonra, sys.database_files ve sys.master_files katalog girdilerini kaldıracak şekilde güncelleştirilir ve path içindeki sys.fulltext_catalogs sütun olarak NULLayarlanır.

Veritabanını yedekleme

Veritabanı yedeğini geri yükleme

Örnek

Aşağıdaki örnek, bir SQL Server 2005 (9.x) veritabanı olan ftdb1'yi geri yüklemek için RESTORE ifadesindeki MOVE yan tümcesini kullanır. SQL Server 2005 (9.x) veritabanı, günlük ve katalog dosyaları SQL Server sunucu örneğindeki yeni konumlara aşağıdaki gibi taşınır:

  • ftdb1.mdfveritabanı dosyası C:\Program Files\Microsoft SQL Server\MSSQL.1MSSQL13.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf'e taşındı.

  • ftdb1_log.ldfgünlük dosyası, log_drive:\log_directory\ftdb1_log.ldfkonumundaki günlük disk sürücünüzdeki bir günlük dizinine taşınır.

  • sysft_cat90 kataloğa karşılık gelen katalog dosyaları C:\temptaşınır. Tam metin dizinleri içeri aktarıldıktan sonra otomatik olarak C:\ftrow_sysft_cat90.ndf adlı bir veritabanı dosyasına yerleştirilir ve C:\temp silinir.

RESTORE DATABASE [ftdb1] FROM DISK = N'C:\temp\ftdb1.bak'
    WITH FILE = 1,
    MOVE N'ftdb1' TO N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\ftdb1.mdf',
    MOVE N'ftdb1_log' TO N'log_drive:\log_directory\ftdb1_log.ldf',
    MOVE N'sysft_cat90' TO N'C:\temp';

SQL Server 2005 veritabanı ekleme

SQL Server 2008 (10.0.x) ve sonraki sürümlerinde tam metin kataloğu, bir grup tam metin dizinine başvuran mantıksal bir kavramdır. Tam metin kataloğu, hiçbir dosya grubuna ait olmayan bir sanal nesnedir. Ancak, tam metin katalog dosyalarını içeren bir SQL Server 2005 (9.x) veritabanını daha yeni bir SQL Server sunucu örneğine eklediğinizde, katalog dosyaları sql Server 2005 (9.x) ile aynı şekilde önceki konumlarından diğer veritabanı dosyalarıyla birlikte eklenir.

SQL Server'da eklenen her tam metin kataloğunun durumu, veritabanının SQL Server 2005'ten (9.x) ayrılmasıyla aynıdır. Ayırma işlemi tarafından herhangi bir tam metin dizini popülasyonu askıya alınmışsa, popülasyon SQL Server'da sürdürülür ve tam metin dizini tam metin araması için kullanılabilir hale gelir.

SQL Server tam metin katalog dosyasını bulamıyorsa veya ekleme işlemi sırasında yeni bir konum belirtmeden tam metin dosyası taşındıysa, davranış seçilen tam metin yükseltme seçeneğine bağlıdır. Tam metin yükseltme seçeneği "İçeri Aktar" veya "Yeniden Oluştur" olarak belirlendiğinde, mevcut tam metin kataloğu yeniden oluşturulur. Tam metin yükseltme seçeneği sıfırlaise, iliştirilmiş tam metin kataloğu sıfırlanır.

Veritabanını ayırma ve ekleme hakkında daha fazla bilgi için bkz . Veritabanı ayırma ve ekleme (SQL Server), CREATE DATABASE, sp_attach_db ve sp_detach_db.