• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь

Getbykey долгий

Gor

Well-known member
07.06.2005
517
1
#1
Код:
Sub Postopen(Source As Notesuidocument)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument

Dim db As NotesDatabase
Dim s As New NotesSession
Set db = s.GetDatabase("SRVCLST", "INFO.nsf", False)
Dim view As NotesView
Set view = db.GetView("TabNOM2")
Dim doc As NotesDocument

p = uidoc.FieldGetText("zak") 
p2 = uidoc.FieldGetText("dep") 

If p2 = "" Then
p = Fulltrim(p)
Set doc = view.GetDocumentByKey(p, True)
p1 = doc.GetItemValue("otdlot")	

Call uidoc.FieldSetText("dep",p1(0))	
End If

End Sub
Смысл такой - очень долго работает... GetDocumentByKey секунд 8-9 при создании документа
Работает быстро если рядом в клиенте открыта вьюха TabNOM2 из базы INFO.nsf
Почему тааак долго?? Вопрос индексации чувствую=)) Как исправить? Какие то настройки на вьюхе?
Или не прав? Что то другое? И это у меня уже не первый раз такая проблема...( Долго этот способ отрабатывается у меня когда ищу по ключу в сторонней базе на сервере...
 

LuMee

Well-known member
02.05.2006
477
0
#2
1. Попробуй создать/пересоздать индекс у базы
2. Попробуй использовать метод NotesDatabase.Search - в одной из IBM Redbooks, посвященных производительности Lotus-решений, вроде упоминалось, что данный метод может работать быстрее NotesView.GetDocumentByKey (вроде как для последнего требуется вытащить и создать объект NotesView, т.е., считай, открыть представление, что бывает небыстро).
 

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#3
попробуй view.refresh..
стоит все-таки проверять после Set doc, а есть ли мальчик(doc).. в прочем как и view
 
G

Guest

#4
Пробуйте db.Search как написано ранее или через evaluate(@DbLookUP,@DbColumn) (1 из них)
 
M

Maria

#5
У меня такая проблема была. В представлении, где было около 90 тысяч документов, GetDocumentByKey работал около минуты. Как решилась проблема: в свойствах представления на закладке Launch в разделе Index - >Refrech я поставила Auto, after first use (а раньше стояло то ли Manual, то ли Automatic). После этого искать стало меньше секунды.
 

morpheus

скриптописец
07.08.2006
3 915
1
#6
<!--QuoteBegin-Ерюков Алексей+17:08:2007, 10:07 -->
<span class="vbquote">(Ерюков Алексей @ 17:08:2007, 10:07 )</span><!--QuoteEBegin-->Пробуйте db.Search как написано ранее или через evaluate(@DbLookUP,@DbColumn) (1 из них)
[snapback]75569" rel="nofollow" target="_blank[/snapback]​
[/quote]
не правда, не стоит так делать
 
G

Guest

#7
<!--QuoteBegin-Morpheus+17:08:2007, 11:37 -->
<span class="vbquote">(Morpheus @ 17:08:2007, 11:37 )</span><!--QuoteEBegin-->не правда, не стоит так делать
[snapback]75575" rel="nofollow" target="_blank[/snapback]​
[/quote]
а разве собачьи формулы не быстрее? хотя они все равно запускаются через лотус скрипт...

<!--QuoteBegin-Maria+17:08:2007, 11:23 -->
<span class="vbquote">(Maria @ 17:08:2007, 11:23 )</span><!--QuoteEBegin-->в свойствах представления на закладке Launch в разделе Index - >Refrech я поставила Auto, after first use (а раньше стояло то ли Manual, то ли Automatic).
[snapback]75571" rel="nofollow" target="_blank[/snapback]​
[/quote]
по идее по умолчанию так и должно стоять, если никто не менял
 

Gor

Well-known member
07.06.2005
517
1
#8
всёёё...!!! проблема ушлааа... всё было просто на самом деле=))\
Сам не заметил откуда у меня взялись настройки при каждом открытии вьюхи перестраивать индекс заново=) спасибо за советы!
 
Вверх Снизу