Измерьте время выполнения SQL в приложении Java - PullRequest
5 голосов
/ 08 июня 2011

Есть ли простой способ измерить время выполнения всех операторов SQL, которые выполняются JDBC, и вывести результат на выход?

Некоторые могут посоветовать мне использовать AOP для этого, но я стараюсь избегать этого, если это возможно. Есть ли другой способ?

Ответы [ 5 ]

2 голосов
/ 12 июня 2011

Если вы не запускаете приложение на сервере приложений, который предоставляет вам источник данных, вы найдете проект log4jdbc полезным. Регистратор jdbc.sqltiming, предоставленный проектом, позволит вам записывать выполнение выполненных операторов SQL.

Это можно использовать в приложении, использующем источники данных, , оборачивая соединение, возвращаемое из источника данных , в объект ConnectionSpy. Это потребует изменений в вашей кодовой базе.

Конечно, есть другие варианты, доступные на момент написания этой статьи:

  • проект P6Spy , который все еще может использоваться на большинстве серверов приложений. Несмотря на то, что оно определенно датировано (и, по мнению некоторых, заброшено), оно ни в коем случае не устарело.
  • API JAMon позволяет отслеживать время выполнения команд SQL, выполненных . Это потребует использования JAMon API для мониторинга соединения.
2 голосов
/ 08 июня 2011

Как ни странно, при просмотре вашего вопроса справа показывалось объявление о инструменте производительности Java Appdynamics Lite .

1 голос
/ 08 июня 2011

Если вы хотите проверить время выполнения вашего java-приложения, то напечатайте дату, затем выполните оператор и снова выведите дату, на которой вы можете увидеть разницу.Как

System.out.println (новая дата ());stmt.executeUpdate ();System.out.println (new Date ());

Если вы хотите увидеть время, затрачиваемое сервером SQL, выполните запрос в анализаторе запросов SQL, в правой части под углом окна вы найдетевремя, затраченное на выполнение запроса.

Спасибо

1 голос
/ 08 июня 2011

Проверьте это. Они упоминают об использовании Sql Recorder с JDBC. Это может сработать для вас.

Что-нибудь лучше, чем P6Spy?

1 голос
/ 08 июня 2011

Мы используем три разных способа отображения времени выполнения.

  1. Мы используем встроенные средства Sql Server, чтобы показать время выполнения / частоту / IO / и т.д.Я сам этим не занимаюсь, поэтому не знаю, что это за инструмент.

  2. Мы используем AviCode для отслеживания времени выполнения сверх определенного предела.

  3. Мы выполняем все наши вызовы sql через библиотеку, которая автоматически измеряет все вызовы sql.

Мы используем эти разные методы, поскольку каждый из них обеспечиваетдругой взгляд на исполнение.Когда возникает проблема, мы смотрим на них всех, чтобы убедиться, что они согласны.

Есть ли у вас что-то подобное в вашей среде?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...