Getbykey долгий

Тема в разделе "Lotus - Программирование", создана пользователем Gor, 16 авг 2007.

  1. Gor

    Gor Well-Known Member

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

    LuMee Well-Known Member

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

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    попробуй view.refresh..
    стоит все-таки проверять после Set doc, а есть ли мальчик(doc).. в прочем как и view
     
  4. Гость

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

    Maria Гость

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

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--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]
    не правда, не стоит так делать
     
  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]
    по идее по умолчанию так и должно стоять, если никто не менял
     
  8. Gor

    Gor Well-Known Member

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

Поделиться этой страницей