我使用运行在Debian Linux上的Postgresql 9.1来执行一些基准测试任务。我想基准共享相同部分的查询的工作量。运行的每个查询之前我重新启动数据库,并执行以下命令:刷新PostgreSQL 9.1中的基准测试缓存
回声3>的/ proc/SYS/VM/drop_caches
瞄准滴两者共享存储器和OS缓存。但是,我注意到如果我以不同的顺序运行相同的查询工作负载,我会得到不同的查询响应时间。我怀疑,无论如何,查询优化器'会记住'如何有效地执行常见的查询部分或重用一些以前缓存的结果。
你有什么想法如何解决这个问题?无论查询顺序如何,我都希望获得大致相同的响应时间。请注意,我正在解析EXPLAIN输出以提取实际运行时间。