Query Performance Problem - Mailing list pgsql-performance

From
Subject Query Performance Problem
Date
Msg-id 20141021055706.569d35d6ab57613ee80d5d1694a397ee.a433b9a0ea.wbe@email06.secureserver.net
Whole thread Raw
Responses Re: Query Performance Problem
List pgsql-performance
<span style="font-family:Verdana; color:#000000; font-size:10pt;"><div><br /></div><div><br /></div><div><span>Hi
all,</span></div><div><br/></div><div>I'm experimenting with table partitioning though inheritance. I'm testing a query
asfollows:</div><div><br /></div><div><div><font face="courier new, monospace">explain (analyze,
buffers)</font></div><div><fontface="courier new, monospace">select <a href="http://response.id/"
target="_blank">response.id</a></font></div><div><fontface="courier new, monospace">from
claim.response</font></div><div><fontface="courier new, monospace">where response.account_id = 4766<br
/></font></div><div><fontface="courier new, monospace">and response.expire_timestamp is null</font></div><div><font
face="couriernew, monospace">and response.create_timestamp >= DATE '2014-08-01'</font></div><div><font face="courier
new,monospace">order by create_timestamp;</font></div></div><div><br /></div><div>The response table looks like
this:</div><div><div><fontface="courier new, monospace">"account_id";"integer"</font></div><div><font face="courier
new,monospace">"file_type_id";"integer"</font></div><div><font face="courier new,
monospace">"receiver_inbound_detail_id";"<wbr/>integer"</font></div><div><font face="courier new,
monospace">"processing_status_id";"<wbr/>integer"</font></div><div><font face="courier new,
monospace">"processing";"boolean"</font></div><div><fontface="courier new, monospace">"expire_timestamp";"timestamp
withouttime zone"</font></div><div><font face="courier new, monospace">"last_mod_timestamp";"<wbr />timestamp without
timezone"</font></div><div><font face="courier new, monospace">"create_timestamp";"timestamp without time
zone"</font></div><div><fontface="courier new, monospace">"response_trace_nbr";"<wbr />character
varying"</font></div><div><fontface="courier new, monospace">"posted_timestamp";"timestamp without time
zone"</font></div><div><fontface="courier new, monospace">"need_to_post";"boolean"</font></div><div><font face="courier
new,monospace">"response_message";"text"</font></div><div><font face="courier new,
monospace">"worked";"boolean"</font></div><div><fontface="courier new,
monospace">"response_status_id";"integer"</font></div><div><fontface="courier new,
monospace">"response_type_id";"integer"</font></div><div><fontface="courier new,
monospace">"outbound_claim_detail_id";"<wbr/>bigint"</font></div><div><font face="courier new,
monospace">"id";"bigint"</font></div></div><div><br/></div><div>Here are some rowcounts:</div><div><br
/></div><div><div><fontface="courier new, monospace">SELECT count(*) from claim_response.response_<wbr
/>201408;</font></div><div><fontface="courier new, monospace">  count</font></div><div><font face="courier new,
monospace">---------</font></div><div><fontface="courier new, monospace"> 4585746</font></div><div><font face="courier
new,monospace">(1 row)</font></div><div><font face="courier new, monospace"><br /></font></div><div><font face="courier
new,monospace">Time: 7271.054 ms</font></div><div><font face="courier new, monospace">SELECT count(*) from
claim_response.response_<wbr/>201409;</font></div><div><font face="courier new, monospace"> 
count</font></div><div><fontface="courier new, monospace">---------</font></div><div><font face="courier new,
monospace"> 3523370</font></div><div><fontface="courier new, monospace">(1 row)</font></div><div><font face="courier
new,monospace"><br /></font></div><div><font face="courier new, monospace">Time: 4341.116 ms</font></div><div><font
face="couriernew, monospace">SELECT count(*) from claim_response.response_<wbr />201410;</font></div><div><font
face="couriernew, monospace"> count</font></div><div><font face="courier new, monospace">-------</font></div><div><font
face="couriernew, monospace">   154</font></div><div><font face="courier new, monospace">(1 row)</font></div><div><font
face="couriernew, monospace"><br /></font></div><div><font face="courier new, monospace">Time: 0.258
ms</font></div></div><div><br/></div><div>The entire table has 225,665,512 rows. I read that a partitioning rule of
thumbis that benefits of partitioning occur starting around 100 million rows.</div><div><br /></div><div><div><font
face="couriernew, monospace">SELECT count(*) from claim.response;</font></div><div><font face="courier new,
monospace">  count</font></div><div><font face="courier new, monospace">-----------</font></div><div><font
face="couriernew, monospace"> 225665512</font></div><div><font face="courier new, monospace">(1
row)</font></div><div><fontface="courier new, monospace"><br /></font></div><div><font face="courier new,
monospace">Time:685064.637 ms</font></div></div><div><br /></div><div><br /></div><div>The partitioning is on the
create_timestampfield.</div><div><br /></div><div>The server is Red Hat Enterprise Linux Server release 6.2 (Santiago)
ona VM machine - 8 GB RAM with 2 CPUs:</div><div><br /></div><div><div><font face="courier new,
monospace">Architecture:         x86_64</font></div><div><font face="courier new, monospace">CPU op-mode(s):      
 32-bit,64-bit</font></div><div><font face="courier new, monospace">Byte Order:            Little
Endian</font></div><div><fontface="courier new, monospace">CPU(s):                2</font></div><div><font
face="couriernew, monospace">On-line CPU(s) list:   0,1</font></div><div><font face="courier new, monospace">Thread(s)
percore:    1</font></div><div><font face="courier new, monospace">Core(s) per socket:    2</font></div><div><font
face="couriernew, monospace">CPU socket(s):         1</font></div><div><font face="courier new, monospace">NUMA
node(s):         1</font></div><div><font face="courier new, monospace">Vendor ID:            
GenuineIntel</font></div><div><fontface="courier new, monospace">CPU family:            6</font></div><div><font
face="couriernew, monospace">Model:                 44</font></div><div><font face="courier new, monospace">Stepping:  
          2</font></div><div><font face="courier new, monospace">CPU MHz:               2660.000</font></div><div><font
face="couriernew, monospace">BogoMIPS:              5320.00</font></div><div><font face="courier new, monospace">L1d
cache:            32K</font></div><div><font face="courier new, monospace">L1i cache:            
32K</font></div><div><fontface="courier new, monospace">L2 cache:              256K</font></div><div><font
face="couriernew, monospace">L3 cache:              12288K</font></div><div><font face="courier new, monospace">NUMA
node0CPU(s):     0,1</font></div></div><div><br /></div><div><br /></div><div><br /></div><div>2 users,  load average:
0.00,0.12, 0.37</div><div><br /></div><div><br /></div><div>Please see the following for the explain analysis
:</div><div><br/></div><div><a href="http://explain.depesz.com/s/I3SL" target="_blank">http://explain.depesz.com/s/<wbr
/>I3SL</a><br/></div><div><br /></div><div>I'm trying to understand why I'm getting the yellow, orange, and red on the
inclusive,and the yellow on the exclusive. (referring to the <a href="http://explain.depesz.com/s/I3SL"
target="_blank">explain.depesz.com/s/I3SL</a> page.)</div><div>I'mrelatively new to PostgreSQL, but I've been an Oracle
DBAfor some time. I suspect the I/O may be dragging but I don't know how to dig that information out from here. Please
pointout anything else you can decipher from this. </div><div><br /></div><div>Thanks,</div><div><br /></div><div
style="">John</div></span>

pgsql-performance by date:

Previous
From: Felipe Santos
Date:
Subject: Re: Query with large number of joins
Next
From: Felipe Santos
Date:
Subject: Re: Query Performance Problem