View.getalldocumentsbykey против View.createviewnavfromcategory

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

  1. lionk

    lionk Well-Known Member

    Регистрация:
    5 апр 2007
    Сообщения:
    308
    Симпатии:
    3
    на днях разбирал одну старю базу которую делал другой чуваки столкнулся с такой штукой,
    у него отбор колекции документов из представленя делается при помощи GetAllDocumentsByKey, где ключ лиас родительского документа. хотя в базе есть служебное представление где доки категоризированы по этому алиасу.
    я всегда такой функционал делал с помощю CreateViewNavFromCategory и дальнейшим разбором навигатора на ентри а потом на документ или выдёргивал значение колонки.

    и вот меня заинтерисовало а какой же метод лучше?
    ведь большенство лотусистов самоучки (как мне кажется) и поскольку книг типа "Вот так надо потомучто это оптимально" либо нет либо я не читал :) , а розобратся всёже хочется вот поэтому я и открыл данную тему.

    итак какой оптимальный метод отбора колекции доков?
    какие вы знаете?
    недостатки и достоинства каждого?
    (с миру по нитек получим неплохой факю)
     
  2. morpheus

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

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    да тотже NotesDatabase -> Search
    <!--QuoteBegin-lionk+21:11:2007, 15:46 -->
    <span class="vbquote">(lionk @ 21:11:2007, 15:46 )</span><!--QuoteEBegin-->CreateViewNavFromCategory
    [snapback]86802" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Не работал - не наю

    <!--QuoteBegin-lionk+21:11:2007, 15:46 -->
    <span class="vbquote">(lionk @ 21:11:2007, 15:46 )</span><!--QuoteEBegin-->GetAllDocumentsByKey
    [snapback]86802" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Вроде быстрая штука )
     
  3. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    самый быстрый метод - получение документа по юниду..
     
  4. Sandr

    Sandr Гость

    Использую и то и то, в зависимости от цели... Но если мне просто колекцию доков получить надо, то использую GetAllDocumentsByKey...
     
  5. lionk

    lionk Well-Known Member

    Регистрация:
    5 апр 2007
    Сообщения:
    308
    Симпатии:
    3
    <!--QuoteBegin-Sandr+21:11:2007, 18:13 -->
    <span class="vbquote">(Sandr @ 21:11:2007, 18:13 )</span><!--QuoteEBegin-->Использую и то и то, в зависимости от цели... Но если мне просто колекцию доков получить надо, то использую GetAllDocumentsByKey...
    [snapback]86825" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    а по какому критерию отбираеш где использовать одно а где другое?
     
  6. Azrael

    Azrael Гость

    С навигаторами советую быть осторожнее: в наследство база как-то доставалась, где внутри цикла
    Код (Text):
    While not(entry is nothing)
    ...
    set entry = nav.getNext...
    Wend
    был код достаточно долго работающий, и с увеличением количества документов во вьюхе стала в определенный момент в строке "set entry" вываливаться ошибка примерное содержание которой: "entry not found in index". Помнится, в своё время проклял всё... Весь код перелопачивать не хотелось, использовал тот же цикл для собирания значений нужных колонок в массив, с которым далее и работал. В данный момент база активно используется, жалоб не наблюдается, но все равно воспоминания неприятные остались...
     
  7. oshmianski

    oshmianski Гость

    Для: Azrael
    а noteView.AutoUpdate = False на что?
     
  8. Azrael

    Azrael Гость

    Для: oshmianski
    тогда не знал, да и сейчас по старой памяти если с навигаторами работаю, предпочитаю нужные значения сначала в массив сложить))
     
  9. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Для: lionk
    ссылка по теме - http://www.ibm.com/developerworks/lotus/li...n-performance1/
    навигатор использовать ТОЛЬКО в случае необходимости отсортированного списка. Во всех остальных случаях - getAllDocumentsByKey
     
  10. yerke

    yerke Well-Known Member

    Регистрация:
    28 авг 2007
    Сообщения:
    392
    Симпатии:
    0
    <!--QuoteBegin-lionk+21:11:2007, 19:46 -->
    <span class="vbquote">(lionk @ 21:11:2007, 19:46 )</span><!--QuoteEBegin-->на днях разбирал одну старю базу которую делал другой чуваки столкнулся с такой штукой,
    у него отбор колекции документов из представленя делается при помощи GetAllDocumentsByKey, где ключ лиас родительского документа. хотя в базе есть служебное представление где доки категоризированы по этому алиасу.
    я всегда такой функционал делал с помощю CreateViewNavFromCategory и дальнейшим разбором навигатора на ентри а потом на документ или выдёргивал значение колонки.

    и вот меня заинтерисовало а какой же метод лучше?
    ведь большенство лотусистов самоучки (как мне кажется) и поскольку книг типа "Вот так надо потомучто это оптимально" либо нет либо я не читал smile.gif , а розобратся всёже хочется вот поэтому я и открыл данную тему.

    итак какой оптимальный метод отбора колекции доков?
    какие вы знаете?
    недостатки и достоинства каждого?
    (с миру по нитек получим неплохой факю)
    [snapback]86802" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    у меня был такой случай
    обрабатывал доки с помощью CreateViewNavFromCategory
    в процесс обработки внедрил прогресс бар чтобы было видно
    вот что оно показало
    если количество категории во вьюшке меньше 30 000
    то CreateViewNavFromCategory работает быстро (примерно за 35 сек обработал 27 000 категории)

    а если количество ентри больше 30 000 то CreateViewNavFromCategory еле находил нужную категорию и с трудом создавал навигатор

    в прочем все сами делайте выводы
     
  11. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    некорректный код при обработке навигаторов вообще может привести к падению сервера :rolleyes:
     
  12. lionk

    lionk Well-Known Member

    Регистрация:
    5 апр 2007
    Сообщения:
    308
    Симпатии:
    3
    єто что то новое, у меня уже почти два года на серваке работают агенты с навигаторами и всё тьфу-тьфу нормально. а откуда такие сведенья?
     
  13. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    да как-то писал агента и в нем нужно было получить массив категорий .. вроде все корректно написал, потому что долго искал, но так и не нашел в чем же была проблема .. в массив много мусора попадало кроме категорий ?! - переполнение и кирдык серверу..
     
  14. oshmianski

    oshmianski Гость

    Для: Kee_Keekkenen
    и при чем же здесь навигатор?
     
  15. Mihal

    Mihal Гость

    Мои размышления...

    При использование ViewNavigator в итоге обрабатываем ViewEntry. При использовании GetAllDocumentsByKey - документы. Так вот, документ (при обращении к нему) "приезжает" полностью. А ведь в нём может быть и аттач какой-нить на много мегабайт. А это время. ViewEntry содержит, как я понимаю, кусок индекса представления. То есть, приезжает ровно столько, сколько нужно (естественно, если всё сделать так, что не надо к документу обращаться). Так что скорость работы зависит и от размеров документов, которые потом обрабатываются.

    <!--QuoteBegin-Kee_Keekkenen+23:11:2007, 00:38 -->
    <span class="vbquote">(Kee_Keekkenen @ 23:11:2007, 00:38 )</span><!--QuoteEBegin-->некорректный код при обработке навигаторов вообще может привести к падению сервера
    [snapback]87035" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Некоректный код при обработке чего-либо может привести к падению всего :).
     
Загрузка...

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