Анализ производительности JPQL - PullRequest
4 голосов
/ 07 февраля 2011

Я пытаюсь взглянуть на проблемы с производительностью нашей базы данных, сделав общий EXPLAIN select (...) в нашей базе данных mysql, однако наше программное обеспечение (написанное на JAVA) использует JPQL. Я хочу сказать, что все запросы используют объекты, и я хотел воспроизвести запрос mysql точно так же, как тот, который был создан JPA (можно ли это сделать? Я имею в виду, что в какой-то момент его придется преобразовать в sql).

Может кто-нибудь объяснить, как я могу перевести это (JPQL) в SQL-запрос? Или даже укажите мне, есть ли способ сделать EXPLAIN непосредственно в JPA, чтобы я мог сделать несколько UT для этой задачи.

Я знаю, что есть способ показывать запросы непосредственно в консоли во время работы UT, возможно, я мог бы попытаться выяснить, как его установить, но я не уверен, отображает ли он собственный запрос вместо запроса JPQL.

Просто чтобы прояснить мою цель здесь:

  • Использовать ОБЪЯСНИТЬ или что-то подобное указать на проблемы с производительностью или база данных.
  • Используемые технологии: JPA и MySql.

Некоторые решения, о которых я подумал (о которых вы, ребята, хотели бы указать, если они осуществимы):

  • Узнайте, как JPQL конвертируется в SQL и использовать старый EXPLAIN метод.
  • Узнайте, как использовать EXPLAIN непосредственно в JPA
  • Трассировка журналов MySql или консоли (при запуске моих UT): (

Thx, Флавио.

1 Ответ

3 голосов
/ 07 февраля 2011

Ведение журнала не стандартизировано для JPA, поэтому включение ведения журнала зависит от поставщика JPA,

для EclipseLink используйте свойство persistence.xml,

См., http://wiki.eclipse.org/EclipseLink/Examples/JPA/Logging

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