Перейти к содержанию
max6002

[Решено?..] Отчет по заказам клиентов - Error No: 1317

Рекомендуемые сообщения

Подскажите как оптимизировать запрос в admin/model/report/customer.php, а то сейчас выдает ошибку

Notice: Error: Query execution was interrupted
Error No: 1317

OcStore 1.5.5.1.2, более 1600 клиентов

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

долго выполняется и сервер обрывает запрос?

уточни у хостера, запроси лог медленных запросов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в панели хостинга в медленных запросах все чисто. скорее всего обрывает, а то страницу долго грузит

ошибка указывает на этот запрос

Notice: Error: Query execution was interrupted
Error No: 1317
SELECT tmp.customer_id, tmp.customer, tmp.status, COUNT(tmp.order_id) AS orders, SUM(tmp.total) AS total FROM (SELECT o.order_id, c.customer_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, o.email, cgd.name AS customer_group, c.status, (SELECT SUM(op.quantity) FROM `oc_order_product` op WHERE op.order_id = o.order_id GROUP BY op.order_id) AS products, o.total FROM `oc_order` o LEFT JOIN `oc_customer` c ON (o.customer_id = c.customer_id) LEFT JOIN oc_customer_group_description cgd ON (c.customer_group_id = cgd.customer_group_id) WHERE o.customer_id > 0 AND cgd.language_id = '1' AND o.order_status_id > '0') tmp GROUP BY tmp.customer_id ORDER BY total DESC LIMIT 0,50 in /www/system/database/mysql.php on line 50
Ошибка возникает, при попытке загрузить отчет Покупатели-Заказы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

индексы проставлены в бд?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

прописывались такие индексы

ALTER TABLE oc_product_attribute ADD INDEX attribute_id ( attribute_id );
ALTER TABLE oc_product_attribute ADD INDEX language_id ( language_id );
 
ALTER TABLE oc_product_description ADD INDEX language_id ( language_id );
 
ALTER TABLE oc_product_image ADD INDEX product_id ( product_id );
ALTER TABLE oc_product_image ADD INDEX sort_order ( sort_order );
 
ALTER TABLE oc_product_option ADD INDEX product_id (product_id);
ALTER TABLE oc_product_option ADD INDEX option_id (option_id);
 
ALTER TABLE oc_product_option_value ADD INDEX product_option_id (product_option_id);
ALTER TABLE oc_product_option_value ADD INDEX product_id (product_id);
ALTER TABLE oc_product_option_value ADD INDEX option_id (option_id);
ALTER TABLE oc_product_option_value ADD INDEX option_value_id (option_value_id);
ALTER TABLE oc_product_option_value ADD INDEX subtract (subtract);
ALTER TABLE oc_product_option_value ADD INDEX quantity (quantity);
 
ALTER TABLE oc_product_reward ADD INDEX product_id ( product_id );
ALTER TABLE oc_product_reward ADD INDEX customer_group_id ( customer_group_id );
 
ALTER TABLE oc_product_to_category ADD INDEX category_id ( category_id );
 
ALTER TABLE oc_product_to_store ADD INDEX store_id ( store_id );
 
ALTER TABLE oc_setting ADD INDEX store_id ( store_id );
ALTER TABLE oc_setting ADD INDEX `group` ( `group` );
ALTER TABLE oc_setting ADD INDEX `key` ( `key` );
ALTER TABLE oc_setting ADD INDEX serialized ( serialized );
 
ALTER TABLE oc_url_alias ADD INDEX query ( query );

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну, как бы, эти совсем не касаются запроса.

в общем можно и нужно добавить индексы по столбцам из запроса (в любом случае) + таки переписать сам запрос.

однако!

также обязательно необходимо узнать у хостера временное ограничение на выполнение запросов.

вдруг действительно мало времени дается...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как я понял нужны индексы для таблиц oc_order_product, oc_order, oc_customer
 

ALTER TABLE oc_order_product ADD INDEX order_product_id ( order_product_id );
ALTER TABLE oc_order_product ADD INDEX order_id ( order_id );
ALTER TABLE oc_order_product ADD INDEX product_id ( product_id );

ALTER TABLE oc_order ADD INDEX order_id ( order_id );
ALTER TABLE oc_order ADD INDEX customer_id ( customer_id );
ALTER TABLE oc_order ADD INDEX customer_group_id ( customer_group_id );

ALTER TABLE oc_customer ADD INDEX customer_id ( customer_id );
ALTER TABLE oc_customer ADD INDEX customer_group_id ( customer_group_id );

может что-то лишнее? каким еще полям можно индексы прописать?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Получилось данную проблему решить? Тоже с этим столкнулся. Индексы проставил не помогло. Хостер пишет что лимит памяти исчерпан:

 

 

Jun  5 13:39:55 ovzhost80 kernel: [1080659.433317] Out of memory in UB 7982403: OOM killed process 1031164 (mysqld) score 0 vm:1458224kB, rss:159716kB, swap:0kB

 

возможности сменить хостера нету, ngnix и акселлератор стоит, но не погает :(

Изменено пользователем saveplanet

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

однозначно запросы в customer.php жрут ресурс как вижу

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ради эксперемента перенес сайт на мощный сервер, проблема таже самая. Дело в таком кривом запросе в customer.php

Удалить старые заказы не вариант. А вот как из ситуации выйти не понимаю. Почему заходя в Отчеты - Покупатели - Заказы, тупо бразуер грузит и не выдает не оишбок ничего.

Изменено пользователем saveplanet

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отсутвовали изначально в OpenCart индексы вот эти, добавив, проблема разрешилась:

 

 

alter table order_product add index order_id(order_id);
alter table order add index order_status_id(order_status_id);
alter table order add index customer_order_status_id(customer_order_status_id);
alter table customer_group_description add index language_id(language_id);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.