Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Сколько запросов использовано


Автор: Валерия 22.9.2008, 19:48
Собственно, есть скрипт, в котором во многом местах много запросов...
И нужно было вывести количество запросов, которое использовал скрипт.
Сделал так (знаю что глупо, но):
Код


$status = explode('  ', mysql_stat());
$start = $status[2];


---скрипт---


$status = explode('  ', mysql_stat());
$stop = $status[2];
$queryes = eregi_replace("Questions: ", "", $stop) - eregi_replace("Questions: ", "", $start);

echo "Использовано $queryes запросов";

Можно ли сделать както, мало того что правильно, но что бы еще и посмотреть ВСЕ запросы которые выполнил скрипт за текущий запуск?
Не трогая сам скрипт.

Автор: bobik02 23.9.2008, 13:10
Сделать переменную счетчик, которая инкреминтируеться когда запрос в текущем скрипте выполнился.

Добавлено через 30 секунд
это как один из вариантов

Автор: skyboy 23.9.2008, 13:35
Цитата(bobik02 @  23.9.2008,  12:10 Найти цитируемый пост)
которая инкреминтируеться когда запрос в текущем скрипте выполнился.

как ты это определишь без коррекции скрипта?  smile 

Автор: bobik02 23.9.2008, 14:04
skyboy, без коррекции скрипта - никак  smile 


Автор: Валерия 23.9.2008, 14:21
Цитата(bobik02 @  23.9.2008,  13:10 Найти цитируемый пост)
Сделать переменную счетчик, которая инкреминтируеться когда запрос в текущем скрипте выполнился.

Я ведь показала как могу смотреть сколько запросов скрипт использовал без добавления счетчика)
Разве что могут быть проблемы если скрипт два раза запустить одновременно...
Но на текущей стадии разработки это не грозит т.к сама открываю скрипт.

Автор: Sunvas 23.9.2008, 15:05
Рекомендую создать класс с набором функций для работы с БД. Тогда счетчик можно запихнуть вовнутрь этого класса smile

Автор: Валерия 23.9.2008, 16:07
Слишком много нужно переписывать, ради того что бы посмотреть какие запросы идут... Не подходит...

Автор: bobik02 23.9.2008, 16:32
Ага, вот представим, что у Вас несколько скриптов, и в некоторых местах выполняются запросы, при этом несколько пользователей одновременно. Впрочем Вы и сами знаете недостаток своего подхода, в многопользовательском режиме он не практичен.
Лучше один раз переписать, чем потом мучатся . 

А вообще какова реальная необходимость в этом ? (не та задача что нужно узнать кол-во запросов которое использовал скрипт, а для чего вам нужно это ?)

Автор: Валерия 23.9.2008, 18:15
Вариант переписать точно никак не подходит)
Просто взялась оптимизировать свой же скрипт, делая подзапросы а не кучу отдельных mysql запросов. В среднем с 130 за запуск дооптимизировала до ~20, но и хотелось бы посмотреть все что выполнились...
Раз нельзя не переписывая, то тема закрыта smile

Автор: skyboy 23.9.2008, 19:28
Цитата(Валерия @  23.9.2008,  17:15 Найти цитируемый пост)
В среднем с 130 за запуск дооптимизировала до ~20, но и хотелось бы посмотреть все что выполнились...

зря. упор надо не на количество делать.
впрочем, хозяин - барин.

Автор: Валерия 23.9.2008, 21:36
Цитата(skyboy @  23.9.2008,  19:28 Найти цитируемый пост)
впрочем, хозяин - барин.

Ну, допустим, разве простой запрос с подзапросом будет медленнее работать чем два отдельных запроса? Думаю наоборот.
Но ты скажешь что всё зависит от ситуации)

Автор: Kesh 29.9.2008, 16:33
Иногда переписывают mysql_query(), добавляя в него инкремент глобальной переменной...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)