我使用運行在Debian Linux上的Postgresql 9.1來執行一些基準測試任務。我想基準共享相同部分的查詢的工作量。運行的每個查詢之前我重新啓動數據庫,並執行以下命令:刷新PostgreSQL 9.1中的基準測試緩存
回聲3>的/ proc/SYS/VM/drop_caches
瞄準滴兩者共享存儲器和OS緩存。但是,我注意到如果我以不同的順序運行相同的查詢工作負載,我會得到不同的查詢響應時間。我懷疑,無論如何,查詢優化器'會記住'如何有效地執行常見的查詢部分或重用一些以前緩存的結果。
你有什麼想法如何解決這個問題?無論查詢順序如何,我都希望獲得大致相同的響應時間。請注意,我正在解析EXPLAIN輸出以提取實際運行時間。