os@ohmu.fi wrote:
> The following code performs a lot slower on PostgreSQL 9.3.0 than on
> PostgreSQL 9.2.4:
>
> DROP TABLE IF EXISTS tmp;
> CREATE TABLE tmp (id BIGSERIAL, vals BIGINT[]);
> DO $$
> DECLARE
> r_id BIGINT;
> n BIGINT;
> BEGIN
> FOR n IN 1..1000 LOOP
> BEGIN
> SELECT id INTO r_id FROM tmp WHERE array_length(vals, 1) < 100
> LIMIT 1 FOR UPDATE NOWAIT;
Most likely, this is caused by the new tuple lock code in 9.3. I can't
look at this immediately but I will give it a look as soon as I'm able.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services