Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Full -text search  [new]
olga
Guest
ystanovila full-text search , no on beret do 100 % CPU
ne podckashete kak optimizirovat" ? chto moshno cdelat" co storoni SQL servera ?

cpacibo
14 янв 02, 14:28    [19719]     Ответить | Цитировать Сообщить модератору
 RE:Full -text search  [new]
Alexander_Chepack
Member

Откуда: London
Сообщений: 22617
Расскажите по-подробнее - особенно - как именно Вы обновляете full-text индексы при изменении данных в таблицах? Т.е. возможны несколько разных подходов: Full Population, Incremental Population и Change Tracking (SQL2K) - первые два способа действительно могут жрать процессорные ресурсы, последний способ работает довольно прилично.
14 янв 02, 14:55    [19720]     Ответить | Цитировать Сообщить модератору
 RE:Full -text search  [new]
olga
Guest
сначала делаю Full Population,
потом -
Incremental Population ( чтобы поддерживать updates )
( это как я понимаю приложимо к каталогу )
а как использовать
Change Tracking ???
15 янв 02, 01:54    [19721]     Ответить | Цитировать Сообщить модератору
 RE:Full -text search  [new]
Alexander_Chepack
Member

Откуда: London
Сообщений: 22617
Change Tracking возможен только на SQL2K - Вы не сказали какая у Вас версия.

Проблема с Incremental Population заключается в том, что он, строго говоря не совсем incremental - SQL Server
снова сканирует ВСЮ таблицу проверяя timestamp у каждой записи - если запись изменилась, происходит
обновление данных в full-text индексе. Как он удаленные записи обрабатывает - не знаю. Индексирование поля timestamp процесс не ускоряет - наверное из-за необходимости обработки удаленных записей.

Т.е. в реальной жизни - на больших таблицах, да еще
более или менее часто обновляемых, использовать incremetal population практически бессмысленно.
Для редко обновляемых данных им пользоваться еще можно.

Change Tracking отслеживает изменения в реальном времени (т.е. ведется что-то вроде журнала изменений) и
обновляет данные ТОЛЬКО для измененных или удаленных данных, соответственно нагрузка на сервер почти нулевая.
Реальное время = в реальной жизни задержка между обновлением данных и обновлением индекса
у меня составляла несколько секунд - что для меня не критично. Таблица для этого должна иметь
хотя бы один уникальный индекс (по-моему, не композитный - т.е. по одной колонке - но точно не помню) - ну иметь
primary key - это, вроде, хороший тон, так что у меня проблем не было.

Для того, чтобы использовать Change Tracking, right-click по таблице, выберите Full-Text Index Table,
выберите Change Tracking и потом под этим пунктом меню выберите Update Index in Background. Все - все
начнет работать автоматически.

Все это и через хранимые процедуры как-то можно сделать, но повторяю - это все работает
только в SQL2K. Я лично full-text indexing в предыдущих версиях просто использовать
не мог - а в SQL2K все работает - быстро и надежно (тьфу-тьфу - не сглазить бы).
15 янв 02, 10:17    [19722]     Ответить | Цитировать Сообщить модератору
 RE:Full -text search  [new]
olga
Guest
bol"shoe cpacibo !
y menia sql 2000 , no est" clients y kotorix sql 7 .

menia ceichac ochen" interesyet problema performance v search systems
ne podckashite , chto moshno optimizirovat" ( na yrovne sql servera )
chtobi vremia otveta bilo minimal"nim ?
15 янв 02, 14:05    [19723]     Ответить | Цитировать Сообщить модератору
 RE:Full -text search  [new]
Alexander_Chepack
Member

Откуда: London
Сообщений: 22617
Если search через full-text indexes - то, честно говоря, не знаю - я пока не разбирался с оптимизацией.
Если search вообще - то тут надо на запросы, индексы и Вашу базу смотреть.
15 янв 02, 21:09    [19724]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить