• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

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

azat20

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


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

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

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

Ну еще, конечно, зависит от того когда строится индекс вида. Но в общем зависимость относительная, потому как его все равно надо переодически перестраивать :)
 
Дядь, ты че? :)
Сам подумай, что быстрее вывести значение из поля, или например, взять поле, отрезать от него символы, перемешать сделать текстовым и вывести..
Да с этим я не спорю. Это самый быстрый вариант. :)
Я про то, что если в каком-то столбце мы уже вывели поле и обработали, то в другом столбце лучше обратиться к этому столбцу по его имени.
Сколько должно быть документов, чтобы тормозило? У меня есть обработки гораздо круче, но всё равно быстро открывается.
 
Чаще проблемы со скоростью открытия вида возникают не от сложности формул колонок, а от следующих факторов:


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

Есть и ещё, но перечислил основные. Проверьте, может одно из них - Ваш случай.
 
  • Нравится
Реакции: magistr
сколько можно повторять одно и то же?
 
TIA, прально!
Истина от повторения не тускнеет :)
 
Сам подумай, что быстрее вывести значение из поля, или например, взять поле, отрезать от него символы, перемешать сделать текстовым и вывести..
Фигня!
Эти все вычисления производятся при добавлении док-та в индекс (ну и при view.Rebuild/Refresh), а не при выдаче на экран
 
Фигня!
Эти все вычисления производятся при добавлении док-та в индекс (ну и при view.Rebuild/Refresh), а не при выдаче на экран

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

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

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

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

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы