|
| |
|
|
Ответов: 0
|
16-01-12 20:13
|
|
|
| |
|
|
Ответов: 0
|
09-01-12 11:23
|
|
|
| |
|
|
Ответов: 0
|
04-01-12 11:23
|
|
|
   Web - программирование
| |
|
|
|
   Программирование под ОС
| |
|
|
|
   Web - технологии
| |
|
|
|
   Базы Данных
| |
|
|
|
Возможно вас заинтересует
|
|
Время выполнения SQL запросов
Barbos
Итак, нам нужно засечь время, потраченное на выполнение 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 запросы
и подсоединитесь к базе данных.
<?
//Засекаем время старта
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$tstart = $mtime;
//Коннектимся к базе:
include 'connect.php';
//Объявляем переменные
$result=0;
$qnum=0;
//Объявляем нашу функцию
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);
}
//Далее тело скрипта
$sql_time+=do_query("SELECT * FROM SOME_TABLE");
//Обрабатываем данные
while($row = mysql_fetch_array($result)){
print($row['Text']);
}
//Пример еще одного запроса
$sql_time+=do_query("SELECT * FROM ANOTHER");
//Обрабатываем данные
$row = mysql_fetch_array($result);
print($row['Another_Text']);
//Засекаем время окончания
$mtime = microtime();
$mtime = explode(" ",$mtime);
$mtime = $mtime[1] + $mtime[0];
$tend = $mtime;
$total = ($tend - $tstart);
//Выдаем время:
printf("SQL запросов: $qnum, время mysql: %f,
всего затрачено: %f секунд !", $sql_time, $total);
//Вычисляем процент времени:
$sqlpercent = ($sql_time*100)/$total;
print('Процент времени на MySQL: '. round($sqlpercent, 2) . '%');
?>
Вот и все ! :)
|
Как запускать-останавливать SQL Server через командную строку? Мне это нужно для использования в скриптах... подробнее
|
|
Кол. просмотров: общее - 2081 сегодня - 0
|
|
|
Ранее в материале «Разбираем айсберг sql server 2005» читателям предлагалось воспользоваться опубликованной в internet серией информационных выпусков microsoft, посвященных sql server 2005, для более оперативного ознакомления с новыми возможностями продукта. Эти материалы содержат замечательный обзор предполагаемых перспектив, который, однако, не может заменить практики... подробнее
|
|
Кол. просмотров: общее - 1788 сегодня - 2
|
|
|
Помните, что имена объектов sql сервера не могут превышать 30 символов. Не используйте зарезервированные слова, специальные символы, и не начинайте имена объектов с цифры. Избегайте использование сокращений... подробнее
|
|
Кол. просмотров: общее - 1820 сегодня - 1
|
|
|
В sql serverе базы данных хранятся в виде обычных файлов на диске. Как минимум на одну БД приходится таких файлов 2: *.mdf и *.ldf. В первом хранятся сами данные, таблицы, индексы и пр., а во втором находится т.н. transaction log, в котором находится информация необходимая для восстановления БД... подробнее
|
|
Кол. просмотров: общее - 2734 сегодня - 1
|
|
|
Все данные в БД sql server хранятся в таблицах.
Таблицы состоят из колонок, объединяющих значения одного типа, и строк - записей в таблице. В одной БД может быть до 2 миллиардов таблиц... подробнее
|
|
Кол. просмотров: общее - 3068 сегодня - 1
|
|
|
|