<index><STRONG><index><STRONG>поиск по ключу...</STRONG> <DIV class

Gor

Well-known member
07.06.2005
517
1
#1
Всем доброго время суток!
В очередной раз обращаюсь за помощью!
Существует БД... в ней есть функция которая ищет людей по табельному номеру, т.е. вводишь табельный нажимаешь на кноппочку и тебе выдаётся по введённому табельному результат - ФИО, отдел где он работает итд итп. В поиске по табельному использую метод GetDocumentByKey. Ключом является табельный номер! И ещё небольшое дополнение - вьюха с сотрудниками по которой ведётся поиск GetDocumentByKey содержится в другой БД. Проблема такая - когда только скрипт был написан поиск работал очень быстро и доки во внешней базе находились тоже быстро, сейчас поиск работает очень и очень медленно .... секунд 20 -30 ищется док. Предположительно проблема в том что документы по которым идёт поиск во внешнеё базе обновляются каждый день в 7 утра, т.е. выгружаются из текстового файла. Т.к. Когда доки в базе по которым идёт поиск стали обновляться каждый день поиск стал работать медленнее. Изза чего это происходит? Изза индексов? И как это можно решить?

маленькое добавление - после обновления документов во вьюхе (после выгрузки из текстового файла)
по которой идёт поиск запускается агент
Код:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Call db.UpdateFTIndex( False )
Call db.Compact
Dim view As NotesView
Set view = db.GetView("TabNOM")
Call view.Refresh
End Sub
TabNOM - имя вьюхи по которой идёт поиск по ключу
 
A

allex

#2
У меня обновление индекса стоит каждый час для сервера...и поиск ни чють не тормозит.
Но поиск происходит в тойже базе в которой работаю
 
30.05.2006
1 345
11
#3
... В поиске по табельному использую метод GetDocumentByKey.
.. сейчас поиск работает очень и очень медленно .... секунд 20 -30 ищется док.
Код:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Call db.UpdateFTIndex( False )
[b]Call db.Compact[/b]
Dim view As NotesView
Set view = db.GetView("TabNOM")
Call view.Refresh
End Sub
TabNOM - имя вьюхи по которой идёт поиск по ключу
Compact смахивает индексы всех вьюх

О! Вставьте ЕЩЕ одну Call view.Refresh
 

Gor

Well-known member
07.06.2005
517
1
#4
то что compact индесы смахивает не знал...
а смысл ещё одноой вью рефреш?=)
 
30.05.2006
1 345
11
#5
то что compact индесы смахивает не знал...
а смысл ещё одноой вью рефреш?=)
Для гарантии. "У принсипе" одной должно быть достаточно, но возможны какие-то трудно запоминаемые комбинации условий, при которых запрос на рефреш ставится в очередь, а не пересчитывается немедленно.