Slow query after upgrade from 9.0 to 9.2 - Mailing list pgsql-performance

From Andrzej Zawadzki
Subject Slow query after upgrade from 9.0 to 9.2
Date
Msg-id 50EEC2D5.3050602@wp.pl
Whole thread Raw
Responses Re: Slow query after upgrade from 9.0 to 9.2
Re: Slow query after upgrade from 9.0 to 9.2
List pgsql-performance
Hi!

Small query run on 9.0 very fast:

SELECT * from sygma_arrear sar where sar.arrear_import_id = (
        select sa.arrear_import_id from sygma_arrear sa, arrear_import ai
        where sa.arrear_flag_id = 2
        AND sa.arrear_import_id = ai.id
        AND ai.import_type_id = 1
        order by report_date desc limit 1)
    AND sar.arrear_flag_id = 2
    AND sar.credit_id = 3102309

"Index Scan using sygma_arrear_credit_id on sygma_arrear sar
(cost=0.66..362.03 rows=1 width=265)"
"  Index Cond: (credit_id = 3102309)"
"  Filter: ((arrear_import_id = $0) AND (arrear_flag_id = 2))"
"  InitPlan 1 (returns $0)"
"    ->  Limit  (cost=0.00..0.66 rows=1 width=8)"
"          ->  Nested Loop  (cost=0.00..3270923.14 rows=4930923 width=8)"
"                ->  Index Scan Backward using report_date_bank_id_key
on arrear_import ai  (cost=0.00..936.87 rows=444 width=8)"
"                      Filter: (import_type_id = 1)"
*"                ->  Index Scan using sygma_arrear_arrear_import_id_idx
on sygma_arrear sa  (cost=0.00..6971.15 rows=31495 width=4)"**
**"                      Index Cond: (sa.arrear_import_id = ai.id)"**
**"                      Filter: (sa.arrear_flag_id = 2)"**
*
Engine uses index - great.

On 9.2

"Index Scan using sygma_arrear_credit_id on sygma_arrear sar
(cost=11.05..381.12 rows=1 width=265)"
"  Index Cond: (credit_id = 3102309)"
"  Filter: ((arrear_import_id = $0) AND (arrear_flag_id = 2))"
"  InitPlan 1 (returns $0)"
"    ->  Limit  (cost=0.00..11.05 rows=1 width=8)"
"          ->  Nested Loop  (cost=0.00..54731485.84 rows=4953899 width=8)"
"                Join Filter: (sa.arrear_import_id = ai.id)"
"                ->  Index Scan Backward using report_date_bank_id_key
on arrear_import ai  (cost=0.00..62.81 rows=469 width=8)"
"                      Filter: (import_type_id = 1)"
*"                ->  Materialize  (cost=0.00..447641.42 rows=6126357
width=4)"**
**"                      ->  Seq Scan on sygma_arrear sa
(cost=0.00..393077.64 rows=6126357 width=4)"**
**"                            Filter: (arrear_flag_id = 2)"**
*
Seq scan... slooow.

Why that's happens? All configurations are identical. Only engine is
different.

When I make index on to column: (arrear_import_id,arrear_flag_id) then
engine use it and run fast.

--
Andrzej Zawadzki


pgsql-performance by date:

Previous
From: Henri Philipps
Date:
Subject: Re: Two Necessary Kernel Tweaks for Linux Systems
Next
From: Shaun Thomas
Date:
Subject: Re: Two Necessary Kernel Tweaks for Linux Systems