From: | "Nikolas Everett" <nik9000(at)gmail(dot)com> |
---|---|
To: | pgsql-performance(at)postgresql(dot)org |
Subject: | Why does this query write to the disk? |
Date: | 2008-09-18 17:30:42 |
Message-ID: | d4e11e980809181030t3f09db94vd5b69d7868271906@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
List,
I'm a bit confused as to why this query writes to the disk:
SELECT count(*)
FROM bigbigtable
WHERE customerid IN (SELECT customerid FROM
smallcustomertable)
AND x !=
'special'
AND y IS NULL
It writes a whole bunch of data to the disk that has the tablespace where
bigbigtable lives as well as writes a little data to the main disk. It
looks like its is actually WAL logging these writes.
Here is the EXPLAIN ANALYZE:
Aggregate (cost=46520194.16..46520194.17 rows=1 width=0) (actual
time=4892191.995..4892191.995 rows=1 loops=1)
-> Hash IN Join (cost=58.56..46203644.01 rows=126620058 width=0) (actual
time=2.938..4840349.573 rows=79815986 loops=1)
Hash Cond: ((bigbigtable.customerid)::text =
(smallcustomertable.customerid)::text)
-> Seq Scan on bigbigtable (cost=0.00..43987129.60 rows=126688839
width=11) (actual time=0.011..4681248.143 rows=128087340 loops=1)
Filter: ((y IS NULL) AND ((x)::text <> 'special'::text))
-> Hash (cost=35.47..35.47 rows=1847 width=18) (actual
time=2.912..2.912 rows=1847 loops=1)
-> Seq Scan on smallcustomertable (cost=0.00..35.47
rows=1847 width=18) (actual time=0.006..1.301 rows=1847 loops=1)
Total runtime: 4892192.086 ms
Can someone point me to some documentation as to why this writes to disk?
Thanks,
Nik
From | Date | Subject | |
---|---|---|---|
Next Message | Kevin Grittner | 2008-09-18 17:49:48 | Re: Why does this query write to the disk? |
Previous Message | Matthew Wakeling | 2008-09-18 13:21:46 | Re: RAID arrays and performance |