Чи зміниться повнотекстовий каталог із відстеженням: AUTO автоматично оновиться, якщо параметр "Змінити відстеження" для цієї таблиці не ввімкнено?


12

У мене є ця таблиця баз даних, яка повинна підтримувати повний текст індексу. Однак я зовсім не бачу, щоб це відбувалося (помилки в журналі не було, оскільки останній журнал, який я бачив, був, коли я його запускав вручну).

Ось що я бачу ...

повнотекстові властивості каталогу

але на самому столі ...

введіть тут опис зображення

Чи може це бути, чому це не відбувається автоматично?


Для наочності, на який журнал ви посилаєтесь?
Майк Заланський

@mikezalansky - це повний текстовий журнал, який можна знайти за адресою(..\MSSQL\Log\SQLFT*)
Кін Шах

Відповіді:


14

Ви дивитесь у неправильне місце.

Ви повинні перевірити, як показано нижче:

введіть тут опис зображення

введіть тут опис зображення

Використання T-SQL ..

Use database_name
go
ALTER FULLTEXT INDEX ON schema.table_name SET CHANGE_TRACKING AUTO;

Після цього ви зможете перевірити стан останнього заселеного часу

-- script source : http://stackoverflow.com/a/10505496/1387418
-- Modified by Kin on Dec 14' 2015 to reflect the FTCatalogName
DECLARE @CatalogName VARCHAR(MAX)
SET     @CatalogName = 'AW2008FullTextCatalog' -- change here !

SELECT name as FTCatalogName, 
    DATEADD(ss, FULLTEXTCATALOGPROPERTY(@CatalogName,'PopulateCompletionAge'), '1/1/1990') AS LastPopulated
    ,(SELECT CASE FULLTEXTCATALOGPROPERTY(@CatalogName,'PopulateStatus')
        WHEN 0 THEN 'Idle'
        WHEN 1 THEN 'Full Population In Progress'
        WHEN 2 THEN 'Paused'
        WHEN 3 THEN 'Throttled'
        WHEN 4 THEN 'Recovering'
        WHEN 5 THEN 'Shutdown'
        WHEN 6 THEN 'Incremental Population In Progress'
        WHEN 7 THEN 'Building Index'
        WHEN 8 THEN 'Disk Full.  Paused'
        WHEN 9 THEN 'Change Tracking' END) AS PopulateStatus
FROM sys.fulltext_catalogs

введіть тут опис зображення

Вставте деякі дані ..

insert into HumanResources.JobCandidate
(BusinessEntityID, Resume, ModifiedDate)
values 
    (4, NULL, DEFAULT)

Тепер ви побачите, що каталог FT оновлений.

введіть тут опис зображення

У журналах ( ..\MSSQL\Log\SQLFT*) також, нижче буде повідомлення ...

2015-12-14 12: 36: 51,29 spid50s Інформація: Повнотекстова автоматична популяція заповнена для таблиці або індексованого перегляду "[AdventureWorks2012]. [HumanResources]. [JobCandidate]" (ідентифікатор таблиці або індексованого перегляду "1589580701 ', ідентифікатор бази даних" 5 '). Кількість опрацьованих документів: 1. Кількість помилкових документів: 0. Кількість документів, які будуть повторно повторені: 0.

Від BOL :

За замовчуванням або якщо ви вказали CHANGE_TRACKING AUTO, повнотекстовий механізм використовує автоматичну сукупність у повнотекстовому індексі. Після завершення початкової повної сукупності зміни відслідковуються, коли дані змінюються в базовій таблиці, а відстежувані зміни поширюються автоматично. Повнотекстовий індекс оновлюється у фоновому режимі, тому розповсюджені зміни можуть не відображатися негайно в індексі .

За замовчуванням SQL Server повністю заповнює новий повнотекстовий індекс, як тільки він буде створений. Однак повне населення може споживати значну кількість ресурсів. Тому при створенні повнотекстового індексу під час пікових періодів часто найкращою практикою є затримка повної сукупності до не пікового часу, особливо якщо основна таблиця повнотекстового індексу велика. Однак повнотекстовий каталог, до якого належить індекс, не можна використовувати, поки не будуть заповнені всі його повнотекстові індекси.

Також див. Поліпшення продуктивності повнотекстових індексів


Спасибі! Проблема, на яку я дивлюся, - це те, чому вона, схоже, не оновлюється, поки я вручну не відновити індекс. Не впевнений, що це пов’язано, але база даних, яка, здається, має цю проблему найбільше, - це та, яка також відображається.
MetaGuru

Issue I am looking at is why it doesn't seem to update at all until I manually rebuild the index.Ви встановили це відповідно до того, що я показав. Якщо змін буде багато, то це займе певний час, оскількиThe full-text index is updated in the background, however, so propagated changes might not be reflected immediately in the index.
Кін Шах

так, я перевірив показані вами місця, і він був правильно налаштований, як у ваших прикладах ... дивно, хоча останній раз, коли журнали кажуть, що цей індекс оновлювався ще деякий час тому, навіть тижні, порівняно з останнім часом додавання нових рядків .. . вона запускатиметься, коли нові рядки додаються відповідно до цього права?
MetaGuru

1
Так .. Я перевірив, а потім розмістив як відповідь.
Кін Шах

1

З якоїсь причини повнотекстовий індексатор припинив автопопуляцію для однієї з моїх баз даних SQL 2012 після того, як моя вторинна репліка бази даних групи доступності взяла на себе і стала основною репліками.

Після видалення індексу повного тексту та відтворення його на столі з автоматичним заповненням, він знову почав автопопуляцію. Я використовував студію управління SQL та майстер створення повного тексту, щоб створити індекс.

Мене хвилювало те, скільки часу знадобиться, щоб запустити повну індексацію даних. Я був приємно здивований, що на повторне виведення 3-х текстових стовпців із таблиці із записами 547619 було потрібно лише 5 хвилин.

Налаштування відстеження зміни рівня Таблиці, про які йдеться у запитанні, залишаються відключеними. Тож відстеження змін повного текстового індексу безумовно відрізняється від налаштування відстеження змін таблиці. НЕ потрібно, щоб увімкнено відстеження змін таблиці для відстеження змін повнотекстового індексування та автопопуляції повнотекстового індексування.

Запуск наступного запиту з бази даних виявить останній раз, коли ваш повний текстовий індексатор виконує сканування.

  SELECT  * FROM sys.fulltext_indexes

Коли автопопуляція ввімкнена, crawl_end_date має змінитися після вставки даних у таблицю.

Також ви зауважите, що при запуску запиту, що використовує повний текстовий індекс, він відображатиме останні дані:

  select TOP 10 * from YOURDATATABLE where contains((YOUR_indexed_column),'YOURSEARCHTERM') order by YOURPRIMARYKEYCOLUMN desc

Додаткові довідки:

Стаття, що описує різні способи повнотекстового пошуку населення: https://msdn.microsoft.com/en-us/library/ms142575%28v=sql.100%29.aspx

Інформація про запит повнотекстової індексованої таблиці: https://technet.microsoft.com/en-us/library/ms142571(v=sql.110).aspx#queries

Стаття про повну архітектуру пошуку тексту: https://technet.microsoft.com/en-us/library/ms142571(v=sql.110).aspx#architecture

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.