SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.02.2009 16:30:26

Igor Panshin
Завсегдатай
Зарегистрирован: 04.06.2008
Сообщений: 62

MS SQL Profiler vs. MySql ?

Поскажите плз хороший аналог профайлера для My Sql

В dbForge Studio for Mysql хорошая отладка скриптов, но это немного не то.
Я хотел бы смотреть и вести весь лог MySql daemon , включая запросы к нему и сообщения от него.
то есть приложение, которое выполняет функции MS SQL profiler.

Заранее спасибо

Неактивен

 

#2 12.02.2009 17:56:43

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: MS SQL Profiler vs. MySql ?

Профайлер умеет показывать состояние запросов (этапы explain), MySQL эту информацию
отдавать не может. В остальном - логи MySQL умеет писать (в т.ч. и лог запросов); текущие
запросы можно смотреть командой SHOW PROCESSLIST. Бесплатной графической утилиты,
напоминающей MS Profiler, не знаю.

Processlist можно смотреть в MySQL GUI Tools, логи можно собирать и агрегировать какими-то
скриптами.

Неактивен

 

#3 13.02.2009 11:00:33

Igor Panshin
Завсегдатай
Зарегистрирован: 04.06.2008
Сообщений: 62

Re: MS SQL Profiler vs. MySql ?

Я попытался проверить так ли это, что Вы говорите.
Давайте создадим а-ля processlist с добавлением поля типа даты и событие, которое каждую секунду туда пишет содержимое из оригинальной таблицы information_schema.processlist

Далее код (версия MySql 5.1.31) для схемы test:

SET GLOBAL event_scheduler = ON;
USE test;
  DROP TABLE IF EXISTS `processlist_log`;

CREATE TABLE `processlist_log`(
    `ID` BIGINT (4) NOT NULL DEFAULT 0,
    `USER` VARCHAR (16) NOT NULL,
    `HOST` VARCHAR (64) NOT NULL,
    `DB` VARCHAR (64) DEFAULT NULL,
    `COMMAND` VARCHAR (16) NOT NULL,
    `TIME` BIGINT (7) NOT NULL DEFAULT 0,
    `STATE` VARCHAR (64) DEFAULT NULL,
    `INFO` LONGTEXT DEFAULT NULL,
    `dtm` DATETIME,
    `num` INT PRIMARY KEY AUTO_INCREMENT
  )
  ENGINE = MYISAM
  CHARACTER SET utf8
  COLLATE utf8_general_ci;

DROP EVENT IF EXISTS `processlist_log_event`;

DELIMITER @@@
CREATE EVENT IF NOT EXISTS `processlist_log_event`
ON SCHEDULE
EVERY 1 SECOND
COMMENT 'ip'
DO
BEGIN
  INSERT INTO `test`.`processlist_log`(`ID`, `USER`, `HOST`, `DB`, `COMMAND`, `TIME`, `STATE`, `INFO`, `dtm`)
  SELECT
    `ID`, `USER`, `HOST`, `DB`, `COMMAND`, `TIME`, `STATE`, `INFO`,
    CAST(CONCAT(CAST(CURDATE() AS char(32)),' ',CAST(CURTIME() AS char(32))) AS datetime)
  FROM
    `information_schema`.`processlist`;
END;

@@@
DELIMITER ;

Так вот я не вижу, что текущий процесс события видит то, что выполняют другие приложения. Он видит только то, что выполняет сам.
И во вторых он записывает в поле инфо не оператор, который выполняет, а только его первую строку до символа новая строка.
Так ли это?  Или я ошибаюсь и делаю нечто неверное?

  /*
-- тестируем

USE test;
SELECT
  *
FROM
  `processlist_log`;
*/

Неактивен

 

#4 13.02.2009 12:28:40

Igor Panshin
Завсегдатай
Зарегистрирован: 04.06.2008
Сообщений: 62

Re: MS SQL Profiler vs. MySql ?

Еще одно обстоятельство, которое не могу разрешить для себя. Если я предоставляю право вести профиль своих запросов нескольким пользователям или приложениям, то как идентифицировать содержимое таблицы profiling к интересующему приложению? видимо гдето существует связь query_id and connection_id()?

SET profiling = 1;
USE information_schema;
SELECT
  *
FROM
  profiling
  order by query_id,seq;

Неактивен

 

#5 13.02.2009 16:25:40

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: MS SQL Profiler vs. MySql ?

1. Другие потоки видны только, если текущий пользователь обладает привилегией SUPER.
2. Вместо вот той жуткой конструкции с кастами лучше использовать NOW().
3. Profiling работает, насколько я знаю, на текущий поток - профилирование других потоков Вы не увидите.

Неактивен

 

#6 13.02.2009 17:49:24

Igor Panshin
Завсегдатай
Зарегистрирован: 04.06.2008
Сообщений: 62

Re: MS SQL Profiler vs. MySql ?

1. Другие потоки видны только, если текущий пользователь обладает привилегией SUPER.
Это относится к системному пользователю или mysql? Я логинюсь под root, а система windows 2003 server. Разве он не super?
А как его сделать super?

2. Вместо вот той жуткой конструкции с кастами лучше использовать NOW().
Это я согласен.

3. Profiling работает, насколько я знаю, на текущий поток - профилирование других потоков Вы не увидите.
Да нет похоже на то, что я вижу. Дав разрешение профилирования на одной и той же БД разным процессам (разные connection_id()) я вижу
SELECT
  *
FROM
  `information_schema`.`profiling`
ORDER BY
  query_id, seq;

все вместе в одной таблице. И как эту кучу разбирать?

Я пробовал сам настроить лог следующим путем
----------------------------------------------------------
Это я добавил в ini файл
[mysqld]
#
#log = c:/tmp/mysqld.log
log-bin=c:/tmp/binlog_mysqld.bin
binlog-do-db=test

Далее перезапустил демон сервера

Получил бинарный файл лога и конвертировал его
C:\tmp>mysqlbinlog binlog_mysqld.000001 > binlog.txt

Но вот потом никак не могу его импортировать в таблицу

USE test;
DROP TABLE IF EXISTS `logd`;
 
  CREATE TABLE `logd`(
    `origin` text NULL
    -- ,`num` INT PRIMARY KEY AUTO_INCREMENT
  )
  ENGINE = MYISAM
  CHARACTER SET utf8
  COLLATE utf8_general_ci;

LOAD DATA LOCAL INFILE 'c:/tmp/binlog.txt
INTO TABLE `test`.`logd`
FIELDS TERMINATED BY '' ENCLOSED BY ''
LINES TERMINATED BY '\r\n' (`origin`);

На последнем операторе почемуто теряется коннекция с сервером.
Сколько можно ходить одной и той же дорогой? Есть здесь спутники или нет?

Неактивен

 

#7 13.02.2009 19:57:11

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: MS SQL Profiler vs. MySql ?

Windows Server 2003 у меня, к сожалению, нет, чтобы попробовать sad

1. В Linux работает нормально под root (показывает все соединения).
3. Обратная ситуация smile

Подозреваю, что в Windows багов больше, чем на Linux, т.к. основная разработка идет на Solaris
и Linux. Может быть, в этом дело. Советую Вам все-таки написать что-то, что делает старые
команды из 5.0 (SHOW PROCESSLIST) и смотрит их. Так же как и агрегирует логи.

Бинлог Вас, кстати, не устроит, вам же SELECT тоже нужны? Используйте --log.

Неактивен

 

#8 17.02.2009 15:54:48

Igor Panshin
Завсегдатай
Зарегистрирован: 04.06.2008
Сообщений: 62

Re: MS SQL Profiler vs. MySql ?

То есть Вы хотите сказать, что работая под системным рутом линукса все работает строго наоборот?
А при чем тут системный логин? Я же коннекчусь к mysql под его рутом (root). Косвенно вижу для себя предложение вернуться на Unix.
Я в свое время на PDP 11/34 работал.  В то время призводители этого продукта утверждали, что С компилятор будет частью операционной системы и абсолютно бесплатным. Так что хрен редьки не слаще.

Да, я научился обрабатывать лог и анализировать его. Единственное, что сами сообщения от mysql server в него не складываются.
Может быть есть такая возможность, чтобы можно было анализировать и сообщения сервера? Что отвечает сервер тоже интересно.

Жаль, что таймстампы без миллисекунд. Это специальное ограничение? Кстати и бинлоги сгодятся для того, чтобы реализовать процесс репликации двух серверов. Надо только уметь сливать два бинлога вместе, разрешая конфликты.

Кстати а как быть с репликацией mysql серверов? Тоже вопрос интересный.

Это уже распарсенный лог:

2009-02-17 15:26:53.000 3           SELECT * FROM `processlist_log` ;
2009-02-17 15:26:55.000 3           SELECT * FROM `information_schema`.`profiling` ORDER BY query_id, seq ;
2009-02-17 15:26:55.000 3           SELECT CONNECTION_ID();
2009-02-17 15:27:54.000 4           select * from `information_schema`.`profiling`;
2009-02-17 15:27:59.000 4           select * from `information_schema`.`profiling`;
2009-02-17 15:28:13.000 4           select * from `dvsys_instances`;

Неактивен

 

#9 17.02.2009 20:06:49

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: MS SQL Profiler vs. MySql ?

Честно говоря, не понял про репликацию.

По поводу того, как работает под линухом - у меня работает так, как описано в документации и так,
как, я считаю, должно работать smile

Неактивен

 

#10 12.04.2010 13:45:56

devart
ISV
MySQL Enterprise Gold Partner
Откуда: www.devart.com
Зарегистрирован: 12.04.2010
Сообщений: 22

Re: MS SQL Profiler vs. MySql ?

Igor Panshin написал:

Поскажите плз хороший аналог профайлера для My Sql

В dbForge Studio for Mysql хорошая отладка скриптов, но это немного не то.
Я хотел бы смотреть и вести весь лог MySql daemon , включая запросы к нему и сообщения от него.
то есть приложение, которое выполняет функции MS SQL profiler.

Заранее спасибо

Уважаемые пользователи!
MySQL Profiler будет доступен в dbForge Studio for MySQL начиная с версии 4.20.
Более подробно, что будет включено в новую версию, можно ознакомиться на форуме dbForge Studio:
http://www.devart.com/ru/forums/viewtop … mp;start=0

Неактивен

 

#11 16.06.2010 16:40:25

devart
ISV
MySQL Enterprise Gold Partner
Откуда: www.devart.com
Зарегистрирован: 12.04.2010
Сообщений: 22

Re: MS SQL Profiler vs. MySql ?

devart написал:

Igor Panshin написал:

Поскажите плз хороший аналог профайлера для My Sql

В dbForge Studio for Mysql хорошая отладка скриптов, но это немного не то.
Я хотел бы смотреть и вести весь лог MySql daemon , включая запросы к нему и сообщения от него.
то есть приложение, которое выполняет функции MS SQL profiler.

Заранее спасибо

Уважаемые пользователи!
MySQL Profiler будет доступен в dbForge Studio for MySQL начиная с версии 4.20.
Более подробно, что будет включено в новую версию, можно ознакомиться на форуме dbForge Studio:
http://www.devart.com/ru/forums/viewtop … mp;start=0

MySQL Profiler уже доступен в dbForge Studio for MySQL, v4.50!

Неактивен

 

#12 05.03.2012 22:14:29

neor
Участник
Зарегистрирован: 05.03.2012
Сообщений: 4

Re: MS SQL Profiler vs. MySql ?

Попробуйте простой консольный профайлер Neor Profile. Позволяет профилировать запросы от приложения и искать узкие места.

Неактивен

 

#13 05.03.2012 22:52:19

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: MS SQL Profiler vs. MySql ?

Чайка клевая :-)

Неактивен

 

#14 11.03.2012 13:22:37

neor
Участник
Зарегистрирован: 05.03.2012
Сообщений: 4

Re: MS SQL Profiler vs. MySql ?

это гусик :-)

Неактивен

 

#15 11.03.2012 20:00:14

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: MS SQL Profiler vs. MySql ?

У гуся крылья меньше и клюв больше: http://img-fotki.yandex.ru/get/4613/349 … 6060d79f_S

Неактивен

 

#16 11.03.2012 20:07:28

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: MS SQL Profiler vs. MySql ?

Не скажи, твой гусь не правильный
http://img-fotki.yandex.ru/get/4419/101 … b03ade0_XL

Неактивен

 

#17 11.03.2012 20:31:16

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: MS SQL Profiler vs. MySql ?

Офигеть smile

Ну, ладно, пусть будет для вас гусь, а для меня — чайка wink

Неактивен

 

#18 05.04.2012 17:13:46

neor
Участник
Зарегистрирован: 05.03.2012
Сообщений: 4

Re: MS SQL Profiler vs. MySql ?

в новой версии будет настоящая летящая чайка (споров не будет :-)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson