Re: query overhead

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/17/2012 11:33 PM, Andy Halsall wrote:


If you're working with ISAM-like access though, cursors may well be very helpful for you. It's a pity for your app that Pg doesn't support cursors that see changes committed after cursor creation, since these are ideal when emulating ISAM "next record" / "previous record" access models. They're still suitable for tasks where you know the app doesn't need to see concurrently modified data, though.

> That's right, that would've been ideal behaviour for us. We're going to manage our own shared cache in the application layer to give similar functionality. We have lots of reads but fewer writes.

How have you gone with this? I'm curious.

By the way, when replying it's the convention to indent the text written by the person you're replying to, not indent your own text. It's kind of hard to read.


> In the context of what we've been talking about, we're reading a set of information which is ordered in a reasonably complex way. Set is about 10000 records and requires a table join. This sort takes a while as it heap scans - couldn't persuade it to use indexes.

> Having read the set, the application "gets next" until the end. To start with we were re-establishing the set (minus the previous record) and choosing the first (LIMIT 1) on each "get next" - obviously a non-starter. We moved to caching the record keys for the set and only visiting the database for the specific records on each "get next" - hence the questions about round trip overhead for small queries.
Given that pattern, why aren't you using a cursor? Do you need to see concurrent changes? Is the cursor just held open too long, affecting autovacum?

--
Craig Ringer



--
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance


[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux