我正在测试一张新的数据汇总表格的实用性。
因此,我创建了两个过程来获取某个时间段内的数据,每个过程使用不同的表格来源。在我的C#控制台应用程序中,我只需调用其中一个。当我想要多次重复这个操作以获得良好的响应时间模式时,问题就开始了。
我得到了类似于这样的结果:1199,84,81,81,81,81,82,80,80,81,81,80,81,91,80,80,81,80
可能是我的Oracle 10g正在进行不恰当的缓存。
如何解决这个问题?
我正在测试一张新的数据汇总表格的实用性。
因此,我创建了两个过程来获取某个时间段内的数据,每个过程使用不同的表格来源。在我的C#控制台应用程序中,我只需调用其中一个。当我想要多次重复这个操作以获得良好的响应时间模式时,问题就开始了。
我得到了类似于这样的结果:1199,84,81,81,81,81,82,80,80,81,81,80,81,91,80,80,81,80
可能是我的Oracle 10g正在进行不恰当的缓存。
如何解决这个问题?
编辑:请参阅 asktom 上的此线程,其中描述了如何以及为什么不要这样做。
如果您在测试环境中,则可以将表空间脱机然后再次联机:
ALTER TABLESPACE <tablespace_name> OFFLINE;
ALTER TABLESPACE <tablespace_name> ONLINE;
或者你可以尝试
ALTER SYSTEM FLUSH BUFFER_CACHE;
但是只在测试环境中进行测试。
当您在“真实”系统上进行测试时,第一次调用后获得的时间(那些使用缓存数据的时间)可能更有趣,因为您将拥有缓存数据。连续调用过程两次,并仅考虑您在随后执行中获得的性能结果。