Bagikan melalui


ALTER FULLTEXT CATALOG (Transact-SQL)

Aplikasi ke:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Gunakan pernyataan ini untuk mengubah properti katalog teks lengkap.

Transact-SQL konvensi sintaks

Sintaks

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

Argumen

catalog_name

Menentukan nama katalog yang akan diubah. Jika katalog dengan nama yang ditentukan tidak ada, SQL Server mengembalikan kesalahan dan tidak melakukan operasi ALTER.

MEMBANGUN ULANG

SQL Server Database Engine membangun kembali seluruh katalog. Saat Anda membuat ulang katalog, katalog yang ada akan dihapus dan katalog baru dibuat di tempatnya. Semua tabel yang memiliki referensi pengindeksan teks lengkap dikaitkan dengan katalog baru. Membangun ulang mengatur ulang metadata teks lengkap dalam tabel sistem database.

WITH ACCENT_SENSITIVITY = { ON | NONAKTIF }

Menentukan apakah katalog yang akan diubah peka aksen atau tidak peka aksen untuk pengindeksan dan kueri teks lengkap.

Untuk menentukan pengaturan properti aksen-sensitivitas saat ini dari katalog teks lengkap, gunakan FULLTEXTCATALOGPROPERTY fungsi dengan AccentSensitivity nilai properti terhadap catalog_name.

  • Jika fungsi mengembalikan 1, katalog teks lengkap peka aksen.
  • Jika fungsi mengembalikan 0, katalog tidak sensitif terhadap aksen.

Katalog dan sensitivitas aksen default database sama.

MENGATUR ULANG

SQL Server Database Engine melakukan penggabungan master, yang melibatkan penggabungan indeks yang lebih kecil yang dibuat dalam proses pengindeksan ke dalam satu indeks besar. Menggabungkan fragmen indeks teks lengkap dapat meningkatkan performa dan membebaskan sumber daya disk dan memori. Jika sering ada perubahan pada katalog teks lengkap, gunakan perintah ini secara berkala untuk mengatur ulang katalog teks lengkap.

REORGANIZE juga mengoptimalkan indeks internal dan struktur katalog.

Bergantung pada jumlah data terindeks, penggabungan master mungkin membutuhkan waktu untuk diselesaikan. Menggabungkan sejumlah besar data dapat membuat transaksi yang berjalan lama, menunda pemotongan log transaksi selama titik pemeriksaan. Dalam hal ini, log transaksi mungkin tumbuh secara signifikan di bawah model pemulihan penuh.

Sebagai praktik terbaik, pastikan log transaksi Anda berisi ruang yang cukup untuk transaksi yang berjalan lama sebelum mengatur ulang indeks teks lengkap besar dalam database yang menggunakan model pemulihan penuh. Untuk informasi selengkapnya, lihat Mengelola ukuran file log transaksi.

SEBAGAI DEFAULT

Menentukan bahwa katalog ini adalah katalog default. Saat Anda membuat indeks teks lengkap tanpa menentukan katalog, katalog default digunakan. Jika ada katalog teks lengkap default yang ada, pengaturan katalog AS DEFAULT ini akan mengambil alih default yang ada.

Izin

Untuk menggunakan ALTER FULLTEXT CATALOG, Anda memerlukan salah satu izin berikut:

  • ALTER izin pada katalog teks lengkap
  • Keanggotaan dalam peran database tetap db_owner atau db_ddladmin
  • Keanggotaan dalam peran server tetap sysadmin

Untuk menggunakan ALTER FULLTEXT CATALOG ... AS DEFAULT, Anda memerlukan ALTER izin pada katalog teks lengkap, dan CREATE FULLTEXT CATALOG izin pada database.

Komentar

Saat Anda menjalankan REBUILD operasi pada katalog teks lengkap, operasi pembangunan kembali akan dijeda jika sesi lain memiliki transaksi terbuka yang menjalankan INSERT, , UPDATEatau DELETE operasi pada tabel milik katalog tersebut. Operasi pembangunan ulang dilanjutkan hanya setelah transaksi lain diterapkan atau digulung balik. Anda dapat memantau situasi ini dengan menggunakan tampilan manajemen dinamis (DMV) sys.dm_exec_requests dan sys.dm_exec_sessions . Anda mungkin melihat kunci antara sesi pengguna dan sesi pembangunan kembali latar belakang, dengan jenis LCK_M_IStunggu .

Demikian pula, selama REORGANIZE operasi, Anda mungkin melihat FT_MASTER_MERGE jenis tunggu dalam sesi tempat perintah berjalan. Jenis tunggu ini dapat terjadi ketika sesi lain memiliki transaksi jangka panjang yang melakukan INSERToperasi , , UPDATEatau DELETE pada tabel dalam katalog teks lengkap yang sama. sys.dm_exec_requests Di DMV dan sys.dm_exec_sessions , Anda mungkin melihat satu atau beberapa sesi latar belakang dengan LCK_M_IX jenis tunggu dan FT_MASTER_MERGE perintah . Operasi REORGANIZE tidak selesai sampai kunci tersebut dilepaskan.

Kueri berikut mengembalikan sesi latar belakang yang diblokir.

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;

Contoh

Contoh berikut mengubah AccentSensitivity properti katalog ftCatalogteks lengkap default , yang sensitif terhadap aksen.

  1. Ubah katalog menjadi aksen tidak sensitif.

    USE AdventureWorks2025;
    GO
    
    ALTER FULLTEXT CATALOG ftCatalog
    REBUILD WITH ACCENT_SENSITIVITY = OFF;
    
  2. Periksa sensitivitas aksen.

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

    Kueri mengembalikan 0, yang berarti katalog tidak sensitif aksen.