Главная » Полезные статьи » Язык PHP » Время выполнения SQL запросов
Распечатать статью

Время выполнения SQL запросов

Итак, нам нужно засечь время, потраченное на выполнение SQL запросов ? Это не очень легко, но и не сложно. Начнем с определения задачи. Необходимо выдать полное время, затраченное на генерацию страницы и время, затраченное на выполнения SQL запросов, еще было бы здорово вывести процент от общего времени.

Сначала напишем функцию, которая выдает время, затраченное на выполнение своего кода:
function do_something(){        $mtime = microtime();         $mtime = explode(» «,$mtime);         $mtime = $mtime[1] + $mtime[0];         $tstart = $mtime;     //here is the code to execute     //………        $mtime = microtime();         $mtime = explode(» «,$mtime);         $mtime = $mtime[1] + $mtime[0];         $tend = $mtime;         $tpassed = ($tend — $tstart);         return($tpassed);    }

Для конкретно нашей задачи, нужно модифицировать эту функцию так, чтобы выполнялись SQL запросы:
//запрос передается как аргумент    function do_query($query){    //подсоединяем две глобальные переменные        global $result;        global $qnum;    //счетчик запросов        $qnum++;    //засекаем время старта        $mtime = microtime();         $mtime = explode(» «,$mtime);         $mtime = $mtime[1] + $mtime[0];         $tstart = $mtime;     //выполняем запрос            $result = MYSQL_QUERY($query);    //засекаем время окончания        $mtime = microtime();         $mtime = explode(» «,$mtime);         $mtime = $mtime[1] + $mtime[0];         $tend = $mtime;         $tpassed = ($tend — $tstart);     //возвращаем время, затраченное на запрос        return($tpassed);    }

Теперь у нас есть функция, которая считает запросы и выдает время экзекуции :) Вот как она должна быть использована:
//Не забудьте где-нибудь в начале скрипта объявить эти две переменные:    $result=0;    $qnum=0;//…//Вызов функции:    $sql_time+=do_query(«SELECT * FROM SOME_TABLE»);//Теперь можно разбирать полученные данные:    while($row = mysql_fetch_array($result)){        print($row[‘Text’]);    }

В окончательном скрипте нужно еще засечь полное время выполнения, таким же способом, что использовался в функции. Внизу код такого скрипта, который заработает, если вы вставите реальные SQL запросы и подсоединитесь к базе данных.

Вот и все ! :)

Источник:  i-faq.ru

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи