Расчет дат , сильно грузит страницу при отображении
-
De_mon
- Спонсор

- Сообщения: 194
- Зарегистрирован: 14 авг 2017, 09:08
- Имя: Дмитрий Горбунов
- Откуда: Россия Уфа
- Организация: Мебель Феличе
- Контактная информация:
Расчет дат , сильно грузит страницу при отображении
Доброго дня. Столкнулся с проблемой очень долгой загрузки списка записей в одной из сущностей. Имеется поле которое рассчитывает кол-во прошедших рабочих дней от даты заключения договора по сегодня , если вывести это поле в список - загрузка страницы занимает 180 секунд+-, при этом не важно какое кол-во строк указано в отображении, что 1 что все 516 имеющихся. Как только убираю из отображения это поле страница загружается за 0,1 сек . Так же было отмечено что данная проблема возникла при кол-ве записей более 500 , при 500 записях загрузка страницы занимает 0,4сек, кто то сталкивался с подобной проблемой ? ИЛи все же придется методом тыка , отключать в расчетах сначало использование праздничных дней , функции и проч
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Расчет дат , сильно грузит страницу при отображении
Если включить опцию исключать праздничные дни, то функция будет перебирать каждую дату и сравнивать является ли она праздничной. И если расчет ведется динамически, то эта процедура будет выполнятся для каждой записи и из за этого появляется задержка.
-
De_mon
- Спонсор

- Сообщения: 194
- Зарегистрирован: 14 авг 2017, 09:08
- Имя: Дмитрий Горбунов
- Откуда: Россия Уфа
- Организация: Мебель Феличе
- Контактная информация:
Re: Расчет дат , сильно грузит страницу при отображении
Понято, спасибо, без динамики тут не обойтись, буду смотреть как оптимизировать
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Расчет дат , сильно грузит страницу при отображении
Смотрите процедуру rukovoditel_days_diff
Сообщите, если получится оптимизировать.
Сообщите, если получится оптимизировать.
-
De_mon
- Спонсор

- Сообщения: 194
- Зарегистрирован: 14 авг 2017, 09:08
- Имя: Дмитрий Горбунов
- Откуда: Россия Уфа
- Организация: Мебель Феличе
- Контактная информация:
Re: Расчет дат , сильно грузит страницу при отображении
Спасибо, обязательно
-
De_mon
- Спонсор

- Сообщения: 194
- Зарегистрирован: 14 авг 2017, 09:08
- Имя: Дмитрий Горбунов
- Откуда: Россия Уфа
- Организация: Мебель Феличе
- Контактная информация:
Re: Расчет дат , сильно грузит страницу при отображении
Увидел что в 3 будет db_slow_query_log , я думаю с ним будет проще понять
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Расчет дат , сильно грузит страницу при отображении
Ну это вам не поможет:)) Ну увидите вы запрос с функцией rukovoditel_days_diff, который тормозит, и что?
Дело в коде самой функции. Тут нужно придумать, как рассчитать разницу и исключить конкретные даты.
У меня это все в цикле
где каждая дата перебирается. Собственно этот цикл и тормозить работу mysql.
Как сделать по другому я не знаю.
Дело в коде самой функции. Тут нужно придумать, как рассчитать разницу и исключить конкретные даты.
У меня это все в цикле
Код: Выделить всё
WHILE FROM_UNIXTIME(start_date,'%Y-%m-%d')<=FROM_UNIXTIME(end_date,'%Y-%m-%d') DO
SET inc_days=1;
#exclude day of week
IF find_in_set(DAYOFWEEK(FROM_UNIXTIME(start_date,'%Y-%m-%d')),exclude_days) THEN
SET inc_days=0;
END IF; Как сделать по другому я не знаю.
- Develop-Soft
- Сообщения: 599
- Зарегистрирован: 27 мар 2019, 01:22
- Имя: Владимир
- Откуда: Россия, Белгород
- Контактная информация:
Re: Расчет дат , сильно грузит страницу при отображении
Я как-то похожую задачу реализовывал без цикла. Просто "Количество дней всего" минус "Количество праздничных и выходных"... Данные по рабочим/выходным дням импортировал из "открытых" на каком-то gov-сайте.