Postgres クエリ プランを調べたところ、上のステップの開始時刻が下のステップの終了時刻と重なっていないことに気付きました。
このクエリのフィールド名が編集されました。
以下に示すように、クエリ実行プログラムには 2 つのステップがあります。下位ステップの「インデックス スキャン」は 5730.776 (実際の時間) で終了しますが、ルート ステップは 19199.316 (実際の時間) で始まります。私の質問は、 5730.776 から 19199.316 の間に何が起こったのですか?
ポストグル 9.1
explain analyze select a_id,b_id,c_id,d_id,e_id,mydate, f,sum(used) used
from report A where mydate >= '2013-05-01' and mydate <= '2013-08-30'
group by a_id,b_id,c_id,d_id,e_id,date,f;
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
HashAggregate (cost=412378.59..418074.28 rows=569569 width=70) (actual time=**19199.316**..25518.672 rows=4935988 loops=1)
-> Index Scan using report_dateonly_idx on report a (cost=0.00..298464.83 rows=5695688 width=70) (actual time=0.033..**5730.776** rows=5816028 loops=1)
Index Cond: ((date >= '2013-05-01 00:00:00'::timestamp without time zone) AND (date <= '2013-08-30 00:00:00'::timestamp without time zone))
Total runtime: 29148.500 ms