akxxiv
Новичок
Ситуация такая: есть отчет, который обрабатывает много данных. Примерно 60000 накладных, по каждой из которых нужно сосчитать доход по накладной, по каждой из которых могут быть запросы к БД + логика расчета.
Скрипт на локальном сервере работает примерно 40 сек. На боевом сказал что израсходовал лимит памяти, выбрав все 60000 накладных из БД, и упал. "Хорошо..." - сказал я ему, и сделал выборку по 1000 записей, которые обрабатывались, а результат сохранялся в итоговом массиве.
Все здорово. От лимита памяти избавился. На локалке все по прежнему работает. На боевом - отрабатывает 25 сек. и тихо так умирает. Ни тебе ФаталЕрроров, ни нотайсов, ни чего!! Тихо-мирно лег и умер, хотя указано что
Думал в max_execution_time дело. Поставил set_time_limit(0); - ноль реакции.
Увеличил выборку до 10000 накладных за раз. Проблемы не решило, но скрипт теперь работает около 15 сек. Затем благополучно умирает. Так же тихо-мирно. Единственное что в обоих случаях он успевает обработать 40-45тыщ накладных.
Нужны идеи куда капать. И чем лечить.
У меня пока одна идея - это какое-то ограничение со стороны БД на количество запросов за ед. времени. Но есть ли такое и если есть, то как называется я не знаю.
В общем, люди добрые, если есть какие-нибудь идеи по данному поводу, буду признателен.
Скрипт на локальном сервере работает примерно 40 сек. На боевом сказал что израсходовал лимит памяти, выбрав все 60000 накладных из БД, и упал. "Хорошо..." - сказал я ему, и сделал выборку по 1000 записей, которые обрабатывались, а результат сохранялся в итоговом массиве.
Все здорово. От лимита памяти избавился. На локалке все по прежнему работает. На боевом - отрабатывает 25 сек. и тихо так умирает. Ни тебе ФаталЕрроров, ни нотайсов, ни чего!! Тихо-мирно лег и умер, хотя указано что
PHP:
ini_set('display_errors',1);
error_reporting(E_ALL);
Увеличил выборку до 10000 накладных за раз. Проблемы не решило, но скрипт теперь работает около 15 сек. Затем благополучно умирает. Так же тихо-мирно. Единственное что в обоих случаях он успевает обработать 40-45тыщ накладных.
Нужны идеи куда капать. И чем лечить.
У меня пока одна идея - это какое-то ограничение со стороны БД на количество запросов за ед. времени. Но есть ли такое и если есть, то как называется я не знаю.
В общем, люди добрые, если есть какие-нибудь идеи по данному поводу, буду признателен.