【发布时间】:2015-02-02 02:13:19
【问题描述】:
有没有办法记录运行在 Tomcat 中的应用程序读取/写入的所有数据库表(可能还有其他对象)?所有的数据库访问都是通过 Hibernate(通过 Spring 连接)或 Sql2o 执行的。
我们正在迁移遗留数据库,最好能自动将实际使用的表与纯遗留的表分开(我们有很多这样的数据库!)。
谢谢!
【问题讨论】:
-
如果只需要表,您可以建立 JDBC 连接并说“从选项卡中选择 *”。
-
你可以记录所有的sql请求(hibernate有它的选项),但是看看你的映射不是更容易吗?不知道Sql2o是什么,但认为它也可以记录sql。
-
恕我直言,不是 100% 可靠的。但是,您可能会尝试配置 p6spy.github.io/p6spy 之类的东西,然后例如一周后尝试 grep 日志文件中的每个旧数据库表名。 grep 没有找到的那些至少在一个测试周内没有被使用过。
-
@talex - 查看映射可能会或可能不会足够,因为您可能会通过 Hibernate API 执行本机 SQL。无论如何,我认为这是否是一个选项还取决于每个 Sql2o 完成的代码量。但我同意分析应用程序可能比使用实际 SQL 访问分析日志更好。
-
感谢您的 cmets!我正在尝试设置 P6spy。
标签: java hibernate tomcat logging jdbc