Медленное открытие вьюхи

Тема в разделе "Lotus - Программирование", создана пользователем azat20, 4 май 2009.

  1. azat20

    azat20 Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    Добрый день!
    Проблема такая. в документе есть мультивалуе поле.Мне надо получить в разных столбцах разные части строки из этого поля.Делаю с использованием значений столбцов ($2).Ну а в столбцах для отображения данных примерно такие значения @ToNumber(@Left(@MiddleBack($23;" ";" ");2)). Как сделать чтобы вьюха открывалась шустрее?
     
  2. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    чем ньше операций в столбцах - тем быстрее будет работать :D
     
  3. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0

    Как вариант, заведи 2 вычисляемых поля скрытых на форме или формируй их при закрытии документа. А в виде используй эти поля, должно работать существенно быстрее, ибо такие преобразования в столбце как у тебя могут (в зависимости от кол-ва документов) очень существенно замедлять процесс открытия вьюхи.
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    А я что-то не замечал падения производительности. По-моему, использование имени столбца в формулах наоборот увеличивают быстродействие.
    Может проблема в конкретной формуле(типа @Now)?
     
  5. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    Дядь, ты че? :)
    Сам подумай, что быстрее вывести значение из поля, или например, взять поле, отрезать от него символы, перемешать сделать текстовым и вывести..

    Понятно, что разница заметна на большом кол-ве документов.

    Ну еще, конечно, зависит от того когда строится индекс вида. Но в общем зависимость относительная, потому как его все равно надо переодически перестраивать :)
     
  6. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Да с этим я не спорю. Это самый быстрый вариант. :)
    Я про то, что если в каком-то столбце мы уже вывели поле и обработали, то в другом столбце лучше обратиться к этому столбцу по его имени.
    Сколько должно быть документов, чтобы тормозило? У меня есть обработки гораздо круче, но всё равно быстро открывается.
     
  7. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Чаще проблемы со скоростью открытия вида возникают не от сложности формул колонок, а от следующих факторов:


    1) Малый процент доступных для текущего пользователя по правам документов. Серверу требуется перебрать много записей индекса, чтоб набрать 2 страницы вида, передаваемых пользователю.
    2) Включённая галка "Do not show empty categories". Крайне вредна. Требуется перебрать все записи категории на предмет доступности пользователю.
    3) Много одновременных обращений к виду на чтение/запись, т.к. индекс блокируется целиком. До сорока запросов на чтение ожидают завершения записи. Запись требует эксклюзивного доступа. Т.е. когда велика вероятность взаимных блокировок.
    4) Большой объём данных, отображаемый в виде. Много колонок. Большие значения.
    5) Частая модификация большого процента документов БД. Из-за чего требуется обновление индекса. Лечится, если сделать вид обновляемым не автоматически, а с интервалом "Auto at most every...".
    6) Как уже говорили, использование временнЫх функций @Now и @Today. Т.к. требует полного перестроения индекса.

    Есть и ещё, но перечислил основные. Проверьте, может одно из них - Ваш случай.
     
  8. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    сколько можно повторять одно и то же?
     
  9. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Рецепты действительно старые. Но Azat'а повели не в лучшем направлении.
     
  10. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    TIA, прально!
    Истина от повторения не тускнеет :)
     
  11. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    вот когда-то ты спросишь о чем-то, что забыл, а мы тебе в ответ "сколько можно повторять одно и то же?" )))
     
  12. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Фигня!
    Эти все вычисления производятся при добавлении док-та в индекс (ну и при view.Rebuild/Refresh), а не при выдаче на экран
     
  13. abbatik

    abbatik Lotus team
    Lotus team

    Регистрация:
    20 окт 2008
    Сообщения:
    277
    Симпатии:
    0
    Если вы повнимательнее посмотрите мой пост, там чуть ниже написано "Ну еще, конечно, зависит от того когда строится индекс вида."

    Это именно то, о чем вы говорите.

    И к тому же, даже если индекс и не строится немедленно, эта операция все равно занимает большее время, чем аналогичная без формул.

    А вообще многое зависит от того, для чего это нужно.
     
Загрузка...

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