JDBC:是否需要以字节为单位获取提交数据的大小

时间:2010-12-02 14:45:21

标签: java jdbc

如果我有一个java应用程序对数据库执行一些插入,如果有一个简单的方法来获取提交的字节数(即所有字段中所有数据的总和大小),而不必手动计算/获取并检查结果集的大小?

-

正如lucho指出的那样,在PreparedStatement之上实现统计感知语句类可能是最佳选择。要坚持下去,看看这有多好。

2 个答案:

答案 0 :(得分:0)

据我所知,没有。

你必须问你的数据库这个问题;也许它可以在不查询你插入的同一个东西的情况下这样做(因为这听起来有点无意义)。

答案 1 :(得分:0)

有趣的问题。我喜欢lucho的解决方案,但我有两个更快(更黑客)的选择:

  1. 您可以尝试使用InnoDB的SHOW TABLE STATUS并保留数据大小的运行日志。这会让你知道,但在我的开发机器上调用一个数据库需要5.3s(56个表),所以除非你只想要一个或两个表的数据,否则它可能太慢(更不用说它可能引起的任何锁定)。

  2. 您可以监控数据库进程并使用操作系统告诉您它的编写量。我知道Windows可以告诉你这一点,我也很确定Linux也可以。但是如果您托管3个数据库,那么您只能获得总数,而且由于交易等原因,它将会有一些数据库。

  3. 随意的想法。