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

[Поддержка] Лог медленных запросов для Opencart 2.x [ocmod]

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

Лог медленных запросов для Opencart 2.x [ocmod]


Лог медленных запросов для Opencart 2.x [ocmod]


Мод позволяет получить лог медленных sql-запросов для последующей отладки скорости загрузки сайта

лог сохраняется по адресу

../system/logs/sql_time.log
 

для изменения лимита времени записи запросов, нужно подправить строку в xml

$min_time = 10;//минимальное время исполнения запроса в мс, записываемое в лог
 

Не забудьте деактивировать мод после окончания работ, иначе лог-файл будет расти месяцами пока не закончится место

Обратите внимание на другие полезные модули:

удобный поиск в админке- https://opencartforum.com/files/file/2746-удобный-поиск-в-админке-opencart-2x/

улучшение индексации - https://opencartforu...сайта-oc-15-2x/

продвижение главной - https://opencartforu...ое-продвижение/

настраиваемый h1 - https://opencartforu...cart-20x-ocmod/


  • Добавил
  • Добавлено
    04.11.2015
  • Категория
  • Системные требования
  • Метод активации
    Без активации
  • Ioncube Loader
    Нет
  • OpenCart
    2.3
    2.2
    2.1
    2.0
  • ocStore
    2.3
    2.2
    2.1
  • OpenCart.Pro, ocShop
    Opencart.pro 2.3
    Opencart.pro 2.1
    OcShop 2.0.3.х

 

  • +1 2

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


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

sql_time.txtlog

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


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

Установили, обновили кэш, лог не сохраняется в файл. Да и файла нет Ocstore 2.1.0.2

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


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

За пол года вы первый с проблемой

Смотрите логи окмод

Либо все так быстро, что записывать нечего (но это вряд-ли)

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


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

За пол года вы первый с проблемой

Смотрите логи окмод

Либо все так быстро, что записывать нечего (но это вряд-ли)

Вот все что есть в логах (связанное с этим модификатором), но я в этом ничего не помаю(

MOD: SQL Query Time LogFILE: system/library/db.php
CODE: return $this->db->query($sql);
LINE: 15
Изменено пользователем olirom

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


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

Здравствуйте! Подскажите пожалуйста а какое оптимальное значение лимита времени ставить сюда $min_time = 10;//минимальное время исполнения запроса в мс, записываемое в лог или тут уже все стоит как надо?

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


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

А можно такое на 1.5?

  • +1 1

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


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

db_log

  • +1 1

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


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

db_log

Спс!

Отправлено с моего Lenovo K920 через Tapatalk

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


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

db_log

Спс! Затупил телефон. Два раза отправил)

Отправлено с моего Lenovo K920 через Tapatalk

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

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


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

на версии ocstore 2.1.0.1 тоже тишина. Файл не создается...

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


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

Как его удалить теперь? Жрёт места кошмар

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


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

Такая же борода. Установил...пользовался...отключил (в модификаторах). Сейчас пытаюсь врубить и тишина. Может можно через БД запросами включить? Переустановка не помогла(

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

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


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

Для чего вам этот инструмент, если не понимаете даже как использовать окмод?

Что вы с логами делать будете?

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

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


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

методом тыка нашел. оказывается файл лежал в system/storage/logs ...хотя в инструкции почему-то просто system/logs

  • +1 2

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


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

Для чего вам этот инструмент, если не понимаете даже как использовать окмод?

Что вы с логами делать будете?

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

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

Что значит не понимаю как использовать окмод? Что я не так сделал?

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


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

откуда мы знаем что в сделали не так, у вас за спиной не стояли

 

Индексы распихать?

А мАмА мОя...

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


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

откуда мы знаем что в сделали не так, у вас за спиной не стояли

 

Индексы распихать?

А мАмА мОя...

Уверен Вы самый умный на свете...но ваши 5 копеек никак не помогли новичку в его проблеме. Это фишка такая вздыхать, охать и тыкать пальцем?

Да, индексы. Нашел тему про тормозящий опенкарт. Там велся разговор о том, что индексы в некоторых таблицах значительно ускоряют работу. Расставить их везде будет во вред. Все индивидуально и ссылка на этот модуль. Мол он поможет узнать медленные запросы и от туда уже плясать. Сейчас я воспользовался индексом на нужные таблицы и сайт снова летает.

Автору спасибо за модуль.

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


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

Если не ошибаюсь вопрос с индексами в опенкарт 2 решен и все проставлено.

Отправлено с моего Lenovo K920 через Tapatalk

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


Ссылка на сообщение
Поделиться на другие сайты
Сейчас я воспользовался индексом на нужные таблицы

 

Поделитесь сообществу.

  • +1 1

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


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

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

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

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

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

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

Войти

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

Войти

  • Похожий контент

    • От Eldaeron
      Здравствуйте, помогите. Не сильный в mysql, но нужно выбрать некоторую информацию.
       
      Из готовых заказов, те что выполненны нужно взять те что заказали с этого года по сегодня, легко:
      SELECT * FROM oc_order WHERE oc_order.order_status_id = 19 AND oc_order.date_modified BETWEEN '2018-01-01 00:00:00' AND '2018-02-02 23:59:59' Например нашло 30 заказов, скажем ид 3000 - 3030, как дальше выбрать все товары, это таблица oc_order_product
       
      Через цикл foreach? Или модифицировать 1 запрос вот так?
      SELECT * FROM oc_order_product WHERE oc_order_product.order_id in (SELECT oc_order.order_id FROM oc_order WHERE oc_order.order_status_id = 19 AND oc_order.date_modified BETWEEN '2018-01-01 00:00:00' AND '2018-02-02 23:59:59') И потом ище выбрать только те товары у которых производитель Apple (manufacturer_id = 1)
       
      В таблице oc_order_product нет колонки manufacturer, но зато она есть в oc_product
       
      Как тут быть? Что-то думаю нужно взять JOIN, но как сделать запрос так и не понял)
       
      Какими программами вы пользуетесь для построенния таких сложных запросов mysql для разработки своих дополнений?
       
      Надеюсь на понимание, спасибо.
    • От Otvet
      Мод позволяет получить лог медленных sql-запросов для последующей отладки скорости загрузки сайта
      лог сохраняется по адресу
      ../system/logs/sql_time.log   для изменения лимита времени записи запросов, нужно подправить строку в xml
      $min_time = 10;//минимальное время исполнения запроса в мс, записываемое в лог   Не забудьте деактивировать мод после окончания работ, иначе лог-файл будет расти месяцами пока не закончится место
      Обратите внимание на другие полезные модули:
      удобный поиск в админке- https://opencartforum.com/files/file/2746-удобный-поиск-в-админке-opencart-2x/
      улучшение индексации - https://opencartforu...сайта-oc-15-2x/
      продвижение главной - https://opencartforu...ое-продвижение/
      настраиваемый h1 - https://opencartforu...cart-20x-ocmod/
    • От Beck7
      Всем привет!
       
      В нашем ИМ есть позиции товара, которые мы не держим в наличии, но хотим продавать под заказ. Поставщик подвозит товар 1 раз в неделю по средам, поэтому сейчас мы ставим статус при отсутствии товара на складе "Ожидание 7-8 дней". Хотелось бы, чтобы это количество изменялось в зависимости от дня недели.
       
      Я решил реализовать это через SQL запрос UPDATE, вызываемый при каждой загрузке страницы.
      12-15 лет назад я увлекался программированием на php3, но уже мало что помню, да и язык стал объектно-ориентированным. Я пытался вставить такую конструкцию в подвал файла index.php:
      // Обновление срока ожидания товара $days_to_supply = 7; $db->query("UPDATE `c1043`.`stock_status` SET `name` = \'Ожидание ".$days_to_supply."-".($days_to_supply+1)." дней\' WHERE `stock_status`.`stock_status_id` = 6 AND `stock_status`.`language_id` = 1"); Но с ней на выходе получается пустая страница, при этом никакой ошибки не появляется в логах.
      Стоит отметить, что база правильно обрабатывает этот SQL запрос через phpmyadmin.
      Подскажите пожалуйста, как правильно сделать запрос. Или есть другие более простые способы решения этой задачи?
       
      З.Ы. Код для правильного присвоения значения переменной $days_to_supply я еще напишу. Но если и это подскажете - с меня пиво! =)
    • От kolyanG
      Привет всем!
      Есть модуль слайдшоу Sidebar Slide Show  для Opencart 1.4.9.1
      Пример здесь, справа вверху:  http://www.avtodomnn.ru
       
      Хотелось бы, если возможно, отображать там только те товары, у которых есть изображение.
      тоесть no_image не отображать. файл no_image.jpg
       
      Я так понимаю нужно отредактировать этот запрос:
      <?php class ModelCatalogSideBarSlideshow extends Model { public function getRandomProduct() { $query = $this->db->query("SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM " . DB_PREFIX . "review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN " . DB_PREFIX . "stock_status ss ON (p.stock_status_id = ss.stock_status_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY RAND() LIMIT ".$this->config->get('sidebarslideshow_limit') ); $product_data = $query->rows; return $product_data; } } ?> Заранее спасибо за помощь!
  • Последние посетители   0 пользователей онлайн

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

×

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

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