• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Getbykey долгий

  • Автор темы Gor
  • Дата начала
G

Gor

Код:
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
Почему тааак долго?? Вопрос индексации чувствую=)) Как исправить? Какие то настройки на вьюхе?
Или не прав? Что то другое? И это у меня уже не первый раз такая проблема...( Долго этот способ отрабатывается у меня когда ищу по ключу в сторонней базе на сервере...
 
L

LuMee

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

Kee_Keekkenen

попробуй view.refresh..
стоит все-таки проверять после Set doc, а есть ли мальчик(doc).. в прочем как и view
 
G

Guest

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

Maria

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

morpheus

<!--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

<!--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]
по идее по умолчанию так и должно стоять, если никто не менял
 
G

Gor

всёёё...!!! проблема ушлааа... всё было просто на самом деле=))\
Сам не заметил откуда у меня взялись настройки при каждом открытии вьюхи перестраивать индекс заново=) спасибо за советы!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!