Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取CLOB/BLOB数据的jdbc性能测试_Java_Database_Jdbc - Fatal编程技术网

Java 获取CLOB/BLOB数据的jdbc性能测试

Java 获取CLOB/BLOB数据的jdbc性能测试,java,database,jdbc,Java,Database,Jdbc,我试图比较不同调用(getBytes/getBinary/getBlob)从BLOB列中获取数据的性能 我现在正在做的是通过jdbc驱动程序跟踪执行语句的时间,并遍历resultset //Mark time ResultSet resultSet = stmt.executeQuery(query); resultSet.getBytes(1) // or resultSet.getBinary or resultSet.getBlob //Mark time again 这是一种非常不准确

我试图比较不同调用(getBytes/getBinary/getBlob)从BLOB列中获取数据的性能

我现在正在做的是通过jdbc驱动程序跟踪执行语句的时间,并遍历resultset

//Mark time
ResultSet resultSet = stmt.executeQuery(query);
resultSet.getBytes(1) // or resultSet.getBinary or resultSet.getBlob
//Mark time again
这是一种非常不准确的方法,因为一旦我运行第一个查询,由于DB引擎的缓存,连续调用往往会更快


是否有更好的方法对这些不同的调用进行性能评估?

在每次基准测试运行之间重新启动

老实说,我认为最好的方法就是加载一个包含大量clob/blob数据的表。也就是说,可能是这样一个伪表“createtabletesttable(id integer主键,testdata blob);”。一旦加载了几gig的测试数据(按顺序增加ID),就可以让程序随机查询(使用Math.random)并将其用于比较


这将消除大多数与缓存相关的变化,并让您很好地了解各种blob检索方法之间的性能是否存在显著差异。

在每次基准测试运行之间重新启动

老实说,我认为最好的方法就是加载一个包含大量clob/blob数据的表。也就是说,可能是这样一个伪表“createtabletesttable(id integer主键,testdata blob);”。一旦加载了几gig的测试数据(按顺序增加ID),就可以让程序随机查询(使用Math.random)并将其用于比较

这将消除大多数与缓存相关的变化,并让您很好地了解各种blob检索方法之间的性能是否确实存在显著差异