[PERFORM] pg_stat_statements query normalization

2013-06-16 Thread Sameer Thakur
Hello, Reading code documentation of pg_stat_statements it says * As of Postgres 9.2, this module normalizes query entries. Normalization * is a process whereby similar queries, typically differing only in their * constants (though the exact rules are somewhat more subtle than that) are * reco

Re: [PERFORM] In progress INSERT wrecks plans on table

2013-06-16 Thread Simon Riggs
On 16 June 2013 16:23, Heikki Linnakangas wrote: > On 06.05.2013 04:51, Mark Kirkwood wrote: >> >> On 05/05/13 00:49, Simon Riggs wrote: >>> >>> On 3 May 2013 13:41, Simon Riggs wrote: >>> (3) to make the check on TransactionIdIsInProgress() into a heuristic, since we don't *need* to ch

Re: [PERFORM] In progress INSERT wrecks plans on table

2013-06-16 Thread Simon Riggs
On 16 June 2013 16:04, Heikki Linnakangas wrote: > On 03.05.2013 15:41, Simon Riggs wrote: >> >> What appears to be happening is we're spending a lot of time in >> TransactionIdIsInProgress() so we can set hints and then when we find >> it is still in progress we then spend more time in XidIsInSna

Re: [PERFORM] In progress INSERT wrecks plans on table

2013-06-16 Thread Tom Lane
Heikki Linnakangas writes: > I'm not sure if this the same idea as (3) above, but ISTM that > HeapTupleSatisfiesMVCC doesn't actually need to call > TransactionIdIsInProgress(), because it checks XidInMVCCSnapshot(). The > comment at the top of tqual.c says: >> * NOTE: must check TransactionId

Re: [PERFORM] In progress INSERT wrecks plans on table

2013-06-16 Thread Heikki Linnakangas
On 06.05.2013 04:51, Mark Kirkwood wrote: On 05/05/13 00:49, Simon Riggs wrote: On 3 May 2013 13:41, Simon Riggs wrote: (3) to make the check on TransactionIdIsInProgress() into a heuristic, since we don't *need* to check that, so if we keep checking the same xid repeatedly we can reduce the

Re: [PERFORM] In progress INSERT wrecks plans on table

2013-06-16 Thread Heikki Linnakangas
On 03.05.2013 15:41, Simon Riggs wrote: What appears to be happening is we're spending a lot of time in TransactionIdIsInProgress() so we can set hints and then when we find it is still in progress we then spend more time in XidIsInSnapshot() while we check that it is still invisible to us. Even