0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 4561 Просмотров
*

M@X1M

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Приветствую! В связи с необходимостью оптимизации запросов к БД возник такой вопрос:
Можно ли как-то при включенном режиме отладки рядом с каждым запросом выводить время его выполнения для поиска "тяжелых" запросов? Или может быть есть какие-то другие способы найти такие запросы?
« Последнее редактирование: 12.06.2010, 01:48:37 от 4webspot »
*

rubasket

  • Захожу иногда
  • 346
  • 13 / 1
  • RuBasket.com
Re: Время выполнения запросов в debug
« Ответ #2 : 23.01.2010, 17:38:59 »
супер!а это не будет как-то тормозить работу самой цмс?
Только я знаю,что могу (C) Джон Локк 
Why him ?Mmm? What  about me? БЕНЖАМИН Л
*

era

  • Администратор
  • 1587
  • 390 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Время выполнения запросов в debug
« Ответ #3 : 23.01.2010, 17:42:35 »
только при включенном дебаге будет может на один процент (не более) помедленней.
при выключенном дебаге не будет никакого замедления.
*

voland

  • Легенда
  • 10837
  • 576 / 111
  • Эта строка съедает место на вашем мониторе
Для 2.5.7 кратко описываю решение - со строчки 519 новый код
Код
// If debugging is enabled then let's log the query.


// Reset the error values.
$this->errorNum = 0;
$this->errorMsg = '';

// Execute the query.
$sql_start = round(microtime(TRUE), 6); // ADDED
$this->cursor = mysql_query($sql, $this->connection);
$sql_end = round(microtime(TRUE), 6); //ADDED

if ($this->debug)
{

$backtrace = debug_backtrace();
$bcktrc_add = '';
if (is_array($backtrace)) {
for ($i = 1; $i < 5; $i++) {
if (isset($backtrace[$i]) and is_array($backtrace[$i])) {
if (isset($backtrace[$i]['file']) and isset($backtrace[$i]['line'])) {
$bcktrc_add .= str_replace(JPATH_BASE, '', $backtrace[$i]['file']).':'.$backtrace[$i]['line']."\n";
}
}
}
}



// Increment the query counter and add the query to the object queue.
$this->count++;
$this->log[] = $sql." \nExecute time:".round(($sql_end - $sql_start), 6)." sec.\n".$bcktrc_add;

JLog::add($sql." \nExecute time:".round(($sql_end - $sql_start), 6)." sec.\n".$bcktrc_add, JLog::DEBUG, 'databasequery');
}
*

slepoy

  • Давно я тут
  • 731
  • 23 / 0
  • Тотальная шизофазия
RE: Время выполнения запросов в debug
« Ответ #5 : 08.12.2013, 16:41:48 »
Здравствуйте.

Я отредактировал файл актуальной версии Joomla 2.5 /libraries/joomla/database/database/mysql.php
заменив в нем код (начинается с 519 строки)
Код
		// If debugging is enabled then let's log the query.
if ($this->debug)
{
// Increment the query counter and add the query to the object queue.
$this->count++;
$this->log[] = $sql;

JLog::add($sql, JLog::DEBUG, 'databasequery');
}
на указанный в предыдущем сообщении, но результата нет. Где я мог допустить ошибку?

Спасибо.
Помог? Поставь(те) плюс в репутацию.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нагрузка на сервер - РЕШЕНО

Автор se_demon

Ответов: 20
Просмотров: 5525
Последний ответ 13.08.2016, 13:55:25
от Escander
[Решено] Перенс сайт на новый хостинг, пришлось изменить htacess...Не работают старые ссылки..Измени

Автор AlexanderKiselev

Ответов: 23
Просмотров: 2668
Последний ответ 09.09.2014, 16:32:41
от Kostelano
Вывести debug-информацию

Автор kefalia

Ответов: 0
Просмотров: 996
Последний ответ 17.04.2014, 14:11:10
от kefalia
Хостер заблокировал сайт из-за медленных запросов

Автор Escander

Ответов: 9
Просмотров: 891
Последний ответ 17.04.2014, 14:06:19
от Escander
[Решено] 404 - Компонент не найден Joomla 1.5

Автор jahcoozi

Ответов: 77
Просмотров: 31038
Последний ответ 21.02.2014, 05:40:57
от Aleks_El_Dia