如何检测哪个查询使查询错误包太大

时间:2016-04-06 16:45:18

标签: mysql hibernate spring-mvc

我的Web应用程序使用Hibernate作为ORM连接到MySQL版本社区服务器(GPL)5.6.24。 最近,我通常从服务器获得例外:

2016-04-06 19:44:25 WARN  SqlExceptionHelper:144 - SQL Error: 0, SQLState: S1000
2016-04-06 19:44:25 ERROR SqlExceptionHelper:146 - Packet for query is too large (2278 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
2016-04-06 19:46:01 WARN  SqlExceptionHelper:144 - SQL Error: 0, SQLState: S1000
2016-04-06 19:46:01 ERROR SqlExceptionHelper:146 - Packet for query is too large (2257 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.

异常上升后,服务器返回此消息而不是返回查询结果:

org.hibernate.exception.GenericJDBCException: could not extract ResultSet

我对这个问题做了很多研究。我尝试将mysql配置的 max_allowed_pa​​cket参数增加到1GB ,就像本指南(link)一样,但它仍然无法正常工作。

那么如何才能确切地检测哪个是导致异常的查询?

已更新:有关我的网络应用程序的更多信息:

  • 最近,它不是一个大型应用程序。数据库只保存普通文本数据,而不是图像信息,而不是blob文本数据!
  • 它是一个履带系统。它接收来自用户的请求,从另一方获取数据并将结果返回给用户。
  • 它保存用户信息,用户订购,v.v ......每个表只需少于10,000行!

0 个答案:

没有答案