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

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

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

Сообщение De_mon »

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

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

Сообщение support »

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

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

Сообщение De_mon »

Понято, спасибо, без динамики тут не обойтись, буду смотреть как оптимизировать
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

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

Сообщение support »

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

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

Сообщение De_mon »

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

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

Сообщение De_mon »

Увидел что в 3 будет db_slow_query_log , я думаю с ним будет проще понять
Аватара пользователя
support
Техническая поддержка
Сообщения: 7661
Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория

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

Сообщение support »

Ну это вам не поможет:)) Ну увидите вы запрос с функцией rukovoditel_days_diff, который тормозит, и что?
Дело в коде самой функции. Тут нужно придумать, как рассчитать разницу и исключить конкретные даты.
У меня это все в цикле

Код: Выделить всё

 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; 
где каждая дата перебирается. Собственно этот цикл и тормозить работу mysql.

Как сделать по другому я не знаю.
Аватара пользователя
Develop-Soft
Сообщения: 599
Зарегистрирован: 27 мар 2019, 01:22
Имя: Владимир
Откуда: Россия, Белгород
Контактная информация:

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

Сообщение Develop-Soft »

Я как-то похожую задачу реализовывал без цикла. Просто "Количество дней всего" минус "Количество праздничных и выходных"... Данные по рабочим/выходным дням импортировал из "открытых" на каком-то gov-сайте.
Ответить