Обсуждение: Question on Sort node's actual rows

Поиск
Список
Период
Сортировка

Question on Sort node's actual rows

От
Victor Yegorov
Дата:
Greetings.

I'm looking at a plan: http://explain.depesz.com/s/sPv

And I have a question. Why in the following snippet `Sort` node reports 128818 rows, although
child node returned only 352?

"->  Sort  (cost=37.06..37.94 rows=352 width=20) (actual time=4.441..16.971 rows=128818 loops=1)
"      Sort Key: ts.currency
"      Sort Method: quicksort  Memory: 52kB
"      Buffers: shared hit=13
"      ->  Seq Scan on transaction_slip ts  (cost=0.00..22.18 rows=352 width=20) (actual time=0.041..4.035 rows=352 loops=1)
"            Filter: (account_id = 101)
"            Rows Removed by Filter: 382
"            Buffers: shared hit=13

This is:
PostgreSQL 9.3.1 on x86_64-apple-darwin12.5.0, compiled by i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00), 64-bit


--
Victor Y. Yegorov

Re: Question on Sort node's actual rows

От
Tom Lane
Дата:
Victor Yegorov <vyegorov@gmail.com> writes:
> I'm looking at a plan: http://explain.depesz.com/s/sPv

> And I have a question. Why in the following snippet `Sort` node
> reports 128818 rows, although
> child node returned only 352?

It's under a mergejoin, which evidently is rescanning its right input
a lot due to duplicate join keys in the left input.

            regards, tom lane