Aracılığıyla paylaş


ALTER FULLTEXT CATALOG (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen Örneği

Tam metin kataloğunun özelliklerini değiştirmek için bu deyimi kullanın.

Transact-SQL söz dizimi kuralları

Sözdizimi

ALTER FULLTEXT CATALOG catalog_name
{ REBUILD [ WITH ACCENT_SENSITIVITY = { ON | OFF } ]
| REORGANIZE
| AS DEFAULT
}

Arguments

catalog_name

Değiştirileceği kataloğun adını belirtir. Belirtilen ada sahip bir katalog yoksa SQL Server bir hata döndürür ve ALTER işlemini gerçekleştirmez.

REBUILD

SQL Server Database Engine kataloğun tamamını yeniden oluşturur. Bir kataloğu yeniden derlediğinizde, mevcut katalog silinir ve onun yerine yeni bir katalog oluşturulur. Tam metin indeksleme referanslarına sahip tüm tablolar yeni katalogla ilişkilendirilir. Yeniden yapılandırma, veritabanı sistem tablolarındaki tam metin meta verileri sıfırlar.

WITH ACCENT_SENSITIVITY = { ON | KAPALI }

Değiştirilecek kataloğun tam metin indeksleme ve sorgulama için aksan hassasiyeti mi yoksa aksan hassasiyeti mi olduğunu belirtir.

Tam metin kataloğunun geçerli vurgu duyarlılığı özellik ayarını belirlemek için işlevini FULLTEXTCATALOGPROPERTY karşı özellik değeriyle AccentSensitivity birlikte kullanın.

  • İşlev döndürürse 1, tam metin kataloğu vurguya duyarlıdır.
  • İşlev döndürürse 0, katalog vurguya duyarlı değildir.

Katalog ve veritabanı varsayılan aksan hassasiyeti aynıdır.

YENİ -DEN DÜZENLEMEK

SQL Server Database Engine master merge gerçekleştirir ve bu işlem, dizin oluşturma işleminde oluşturulan küçük dizinleri tek bir büyük dizinde birleştirmeyi içerir. Tam metin indeks parçalarını birleştirmek performansı artırabilir ve disk ile bellek kaynaklarını boşaltabilir. Tam metin katalogda sık sık değişiklikler oluyorsa, bu komutu periyodik olarak tam metin kataloğunu yeniden düzenlemek için kullanın.

REORGANIZE ayrıca iç dizin ve katalog yapılarını iyileştirir.

Dizine alınan veri miktarına bağlı olarak, ana birleştirmenin tamamlanması biraz zaman alabilir. Büyük miktarda veriyi birleştirmek, uzun süre çalışan bir işlem oluşturarak denetim noktası sırasında işlem günlüğünün kesilmesini geciktirebilir. Bu durumda, işlem günlüğü tam kurtarma modeli altında önemli ölçüde büyüyebilir.

En iyi uygulama olarak, işlem günlüğünüzde uzun süreli bir işlem için yeterli alan içerdiğinden emin olun, ardından tam kurtarma modelini kullanan bir veritabanında büyük tam metin bir indeks yeniden düzenlenir. Daha fazla bilgi için bkz . İşlem günlüğü dosyasının boyutunu yönetme.

VARSAYILAN OLARAK

Bu kataloğun varsayılan katalog olduğunu belirtir. Katalog belirtmeden tam metin dizinleri oluşturduğunuzda varsayılan katalog kullanılır. Varsayılan bir tam metin kataloğu varsa, bu kataloğun AS DEFAULT ayarlanması mevcut varsayılanı geçersiz kılar.

Permissions

kullanmak ALTER FULLTEXT CATALOGiçin aşağıdaki izinlerden birine sahip olmanız gerekir:

  • ALTER tam metin kataloğunda izin
  • db_owner veya sabit veritabanı rollerini db_ddladmin üyelik
  • sysadmin sabit sunucu rolüne üyelik

kullanmak ALTER FULLTEXT CATALOG ... AS DEFAULTiçin, tam metin kataloğu ALTER üzerinde ve veritabanında izin gerekirCREATE FULLTEXT CATALOG.

Açıklamalar

Tam metin kataloğunda bir REBUILD işlem çalıştırdığınızda, başka bir oturumun o kataloğa ait tablolarda , UPDATEveya DELETE çalıştıran açık bir işlemi INSERTvarsa yeniden oluşturma işlemi duraklatılır. Yeniden oluşturma işlemi ancak diğer işlem işleme veya geri alma işlemlerinden sonra devam eder. Sys.dm_exec_requests ve sys.dm_exec_sessions dinamik yönetim görünümlerini (DMV) kullanarak bu durumu izleyebilirsiniz. Kullanıcı oturumu ile arka plan yeniden oluşturma oturumları arasında bekleme türüne LCK_M_ISsahip kilitler görebilirsiniz.

Benzer şekilde, bir REORGANIZE işlem sırasında komutun FT_MASTER_MERGE çalıştığı oturumda bekleme türünü görebilirsiniz. Bu bekleme türü, diğer oturumlarda aynı tam metin kataloğundaki tablolarda , UPDATEveya DELETE işlemleri yapan INSERTuzun süre çalışan işlemler olduğunda oluşabilir. sys.dm_exec_requests ve sys.dm_exec_sessions DMV'lerinde, bekleme türü ve FT_MASTER_MERGE komutuyla bir LCK_M_IX veya daha fazla arka plan oturumu görebilirsiniz. Bu REORGANIZE kilitler serbest bırakılana kadar işlem tamamlanmaz.

Aşağıdaki sorgu engellenen arka plan oturumlarını döndürür.

SELECT r1.session_id,
       r1.blocking_session_id,
       r1.wait_type,
       r1.wait_resource,
       r1.last_wait_type,
       r1.command AS BlockedSessionCommand,
       r2.command AS BlockingSessionCommand,
       s1.login_name AS BlockedSessionLogin,
       s2.login_name AS BlockingSessionLogin,
       s1.host_name AS BlockedSessionHost,
       s2.host_name AS BlockingSessionHost,
       r1.status AS BlockedSessionStatus,
       r2.status AS BlockingSessionStatus
FROM sys.dm_exec_requests AS r1
     INNER JOIN sys.dm_exec_sessions AS s1
         ON r1.session_id = s1.session_id
     INNER JOIN sys.dm_exec_sessions AS s2
         ON r1.blocking_session_id = s2.session_id
     LEFT OUTER JOIN sys.dm_exec_requests AS r2
         ON s2.session_id = r2.session_id
WHERE r1.blocking_session_id <> 0
      AND r1.status = 'background'
ORDER BY r1.wait_time DESC;

Örnekler

Aşağıdaki örnek AccentSensitivity , varsayılan tam metin kataloğunun ftCatalogözelliğini değiştirir, bu özellik aksan hassasiyetlidir.

  1. Kataloğu aksan duyarsız olacak şekilde değiştirin.

    USE AdventureWorks2025;
    GO
    
    ALTER FULLTEXT CATALOG ftCatalog
    REBUILD WITH ACCENT_SENSITIVITY = OFF;
    
  2. Vurgu duyarlılığını denetleyin.

    SELECT FULLTEXTCATALOGPROPERTY('ftCatalog', 'AccentSensitivity');
    

    Sorgu, kataloğun aksan duyarlı olmadığı anlamına gelen değerini döndürür 0.