Время выполнения 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 запросы и подсоединитесь к базе данных.
<? //Засекаем время старта $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) . '%'); ?>
Вот и все ! :)
Оставлять комментарии могут только зарегистрированные пользователи.
Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо ввести логин и пароль в верхней (Alt-U) части страницы.
Источник: http://feedproxy.google.com/~r/codenet/read/~3/gAosyLagKUU/sqltime.php


Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2023-12-08 » Комплексные стратегии продвижения промышленных компаний
- 2023-12-06 » Комплексное продвижение медицинских сайтов
- 2023-12-06 » Комплексное продвижение интернет‑магазинов
- 2023-12-01 » Юзабилити
- 2023-11-30 » Маркетинг на аутсорсе
- 2023-11-29 » Реклама на Яндекс Картах
- 2023-11-29 » Добавим ваш бизнес на карты
- 2023-11-21 » Настройка и использование Fail2ban на Linux
- 2023-11-20 » Лучшие пользовательские инструкции для DALL-E 3, или как заставить генерировать изображения, нужные вам
- 2023-11-17 » Топ проблем, которые мешают продвижению сайта
- 2023-11-16 » Как бесплатно пользоваться GPT-4 — пять способов
- 2023-11-15 » Нейросеть Watermark Remover: удобное удаление водяных знаков с изображений
- 2023-11-08 » Оптимизация и тюнинг производительности MariaDB MySQL сервера внутри Docker
- 2023-11-07 » Как настроить службу Linux для автоматического запуска после сбоя или перезагрузки — часть 1: практические примеры
- 2023-10-29 » Простой тест PHP Mail
- 2023-10-27 » Работа с базами данных MySQL в ISPManager 5 + Docker
- 2023-09-22 » Используем ChatGPT для сбора семантики: возможности и провалы
- 2023-09-22 » 10 SEO-приемов: база для SEO-специалистов
- 2023-09-22 » Как запустить контекстную рекламу по конкурентам в Яндекс Директ и не получить повестку в суд
- 2023-09-22 » Как составить контент-план с помощью нейросети
- 2023-09-01 » Организация продаж на Авито и ЮЛА
- 2023-08-30 » Услуги дизайнера на заказ
- 2023-08-29 » Интеграция с 1С
- 2023-08-29 » Доработка интернет-магазина
- 2023-08-10 » Как продвигать сайты-аффилиаты в поиске
- 2023-08-10 » SEO-продвижение сайтов медицинской тематики: лучшие стратегии и практики
- 2023-05-19 » Как повысить конверсию в интернет-магазине: 17 способов
- 2023-05-19 » Тренды в веб-дизайне в 2023 году
- 2023-05-19 » Как подключиться к серверу по VNC
- 2023-02-27 » Грамотная структура страницы сайта — основные элементы и советы
Если ты рождён без крыльев, не мешай им расти. (Коко Шанель / ЖИТЕЙСКАЯ МУДРОСТЬ ) |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.