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

  • Автор темы azat20
  • Дата начала
A

azat20

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

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
чем ньше операций в столбцах - тем быстрее будет работать :D
 
A

abbatik

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


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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
А я что-то не замечал падения производительности. По-моему, использование имени столбца в формулах наоборот увеличивают быстродействие.
Может проблема в конкретной формуле(типа @Now)?
 
A

abbatik

А я что-то не замечал падения производительности. По-моему, использование имени столбца в формулах наоборот увеличивают быстродействие.
Может проблема в конкретной формуле(типа @Now)?

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

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

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

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
Дядь, ты че? :)
Сам подумай, что быстрее вывести значение из поля, или например, взять поле, отрезать от него символы, перемешать сделать текстовым и вывести..
Да с этим я не спорю. Это самый быстрый вариант. :)
Я про то, что если в каком-то столбце мы уже вывели поле и обработали, то в другом столбце лучше обратиться к этому столбцу по его имени.
Сколько должно быть документов, чтобы тормозило? У меня есть обработки гораздо круче, но всё равно быстро открывается.
 
T

TIA

Чаще проблемы со скоростью открытия вида возникают не от сложности формул колонок, а от следующих факторов:


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

Есть и ещё, но перечислил основные. Проверьте, может одно из них - Ваш случай.
 
  • Нравится
Реакции: magistr
O

Omh

TIA, прально!
Истина от повторения не тускнеет :)
 
30.05.2006
1 345
12
BIT
0
Сам подумай, что быстрее вывести значение из поля, или например, взять поле, отрезать от него символы, перемешать сделать текстовым и вывести..
Фигня!
Эти все вычисления производятся при добавлении док-та в индекс (ну и при view.Rebuild/Refresh), а не при выдаче на экран
 
A

abbatik

Фигня!
Эти все вычисления производятся при добавлении док-та в индекс (ну и при view.Rebuild/Refresh), а не при выдаче на экран

Если вы повнимательнее посмотрите мой пост, там чуть ниже написано "Ну еще, конечно, зависит от того когда строится индекс вида."

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

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

А вообще многое зависит от того, для чего это нужно.
 
Мы в соцсетях:

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