Можно ли заставить SQL Server 2000 заполнять полнотекстовый каталог, не блокируя таблицы, которые он читает? - PullRequest
0 голосов
/ 23 февраля 2009

У меня есть сервер базы данных на SQL Server 2000 (да, я знаю ...) с полнотекстовыми каталогами на некоторых таблицах. В настоящее время я делаю все заполнение в одночасье в тихое время, и я хотел бы иметь возможность обновлять каталоги в течение дня, чтобы новые данные могли быть рассмотрены в поиске.

Проблема, которую я заметил, заключается в том, что при работе добавочной совокупности происходит значительное количество блокировок, вызванных процессом заполнения. Другие транзакции в этой базе данных используют «чтение без передачи» или «грязное чтение», чтобы минимизировать задержки (мне не особенно важны точные данные с точностью до секунды), поэтому я не совсем уверен, почему население, которое сам только читает данные, блокирует их.

Есть подсказки, подсказки?

1 Ответ

1 голос
/ 25 февраля 2009

Короткая история: нет, и ситуация не намного лучше до недавних обновлений SQL Server 2008. RTM-версия 2008 года имела те же проблемы, как мы здесь описали:

http://www.brentozar.com/archive/2008/11/stackoverflows-sql-2008-fts-issue-solved/

Обходной путь - использовать самые быстрые подсистемы хранения, которые имеют смысл для вашего бюджета и ваших рабочих нагрузок. Полнотекстовые каталоги должны быть в отдельных массивах от ваших данных и журналов, и таким образом они могут быстрее завершить заполнение.

Вы также упомянули, что удивлены тем, что чтение вызывает блокировки. У нас есть статьи о SQLServerPedia, объясняющие процесс блокировки SQL Server, например:

http://sqlserverpedia.com/wiki/SQL_Server_Locking_Mechanism

Если вы хотите получить более конкретные ответы, следите за своим сервером во время заполнения. Запустите sp_who2, посмотрите, какие запросы блокируются, и выполните команду DBCC INPUTBUFFER (spid), чтобы выяснить, каков их T-SQL. Таким образом, вы сможете точно определить, какие типы запросов вызывают его. Если вы уверены, что он использует read uncommitted, загрузите копию своего плана выполнения запросов, и мы поможем интерпретировать его, чтобы выяснить, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...