Hi, As part of one query tuning, it was observed that query execution time was more even though cost was decreased.
*Initial Query :* Nested Loop Left Join (cost=159.88..*38530.02* rows=1 width=8) (actual time=0.387..*40.766* rows=300 loops=1) *Changed Query :* Nested Loop Anti Join (cost=171.66..*5961.96* rows=1 width=8) (actual time=0.921..*110.862* rows=300 loops=1) May i know the reason behind in increase in response time, even though cost was reduced by 6.4 times. Detailed execution plans can be found below along with the queries *Initial Query* => explain(analyze,buffers,costs) SELECT ku.user_id > FROM konotor_user ku > LEFT JOIN agent_details ad > ON ku.user_id = ad.user_id > WHERE ku.app_id = '12132818272260' > AND (ku.user_type = 1 OR ku.user_type = 2) > AND (ad.deleted isnull OR ad.deleted = 0) > AND ku.user_id NOT IN ( > SELECT gu.user_id > FROM group_user gu > INNER JOIN groups > ON gu.group_id = groups.group_id > AND app_id = ku.app_id > WHERE gu.user_id = ku.user_id > AND groups.app_id = ku.app_id > AND groups.deleted = false); QUERY PLAN --------------------------------------------------------------------------------------------------------------------------------------------------------------- Nested Loop Left Join (cost=159.88..38530.02 rows=1 width=8) (actual time=0.387..40.766 rows=300 loops=1) Filter: ((ad.deleted IS NULL) OR (ad.deleted = 0)) Buffers: shared hit=52138 -> Bitmap Heap Scan on konotor_user ku (cost=159.73..38383.64 rows=712 width=8) (actual time=0.383..40.221 rows=300 loops=1) Recheck Cond: (((app_id = '12132818272260'::bigint) AND (user_type = 1)) OR ((app_id = '12132818272260'::bigint) AND (user_type = 2))) Filter: (NOT (SubPlan 1)) Rows Removed by Filter: 485 Heap Blocks: exact=729 Buffers: shared hit=51838 -> BitmapOr (cost=159.73..159.73 rows=1425 width=0) (actual time=0.112..0.112 rows=0 loops=1) Buffers: shared hit=11 -> Bitmap Index Scan on konotor_user_app_id_user_type_idx (cost=0.00..88.42 rows=786 width=0) (actual time=0.009..0.009 rows=1 loops=1) Index Cond: ((app_id = '12132818272260'::bigint) AND (user_type = 1)) Buffers: shared hit=4 -> Bitmap Index Scan on konotor_user_app_id_user_type_idx (cost=0.00..70.95 rows=639 width=0) (actual time=0.101..0.101 rows=784 loops=1) Index Cond: ((app_id = '12132818272260'::bigint) AND (user_type = 2)) Buffers: shared hit=7 SubPlan 1 -> Nested Loop (cost=0.57..45.28 rows=1 width=8) (actual time=0.049..0.049 rows=1 loops=785) Buffers: shared hit=51098 -> Index Scan using groups_app_id_group_id_idx on groups (cost=0.28..20.33 rows=3 width=8) (actual time=0.002..0.014 rows=20 loops=785) Index Cond: (app_id = ku.app_id) Filter: (NOT deleted) Rows Removed by Filter: 2 Buffers: shared hit=18888 -> Index Only Scan using uk_groupid_userid on group_user gu (cost=0.29..8.30 rows=1 width=16) (actual time=0.001..0.001 rows=0 loops=15832) Index Cond: ((group_id = groups.group_id) AND (user_id = ku.user_id)) Heap Fetches: 455 Buffers: shared hit=32210 -> Index Scan using agent_details_user_id_idx on agent_details ad (cost=0.15..0.19 rows=1 width=10) (actual time=0.001..0.001 rows=0 loops=300) Index Cond: (ku.user_id = user_id) Buffers: shared hit=300 Planning time: 0.493 ms Execution time: 40.901 ms *Changed Query * => explain(analyze,buffers,costs) SELECT ku.user_id FROM konotor_user ku > LEFT OUTER JOIN agent_details ad ON ku.user_id = ad.user_id LEFT OUTER JOIN > (SELECT gu.user_id > FROM group_user gu INNER JOIN groups ON > gu.group_id = groups.group_id WHERE app_id='12132818272260' AND > groups.deleted = false)t ON t.user_id= ku.user_id > WHERE ku.app_id = '12132818272260' > AND (ku.user_type = 1 OR ku.user_type = 2) AND > (ad.deleted isnull OR ad.deleted = 0) AND t.user_id is NULL; QUERY PLAN ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Nested Loop Anti Join (cost=171.66..5961.96 rows=1 width=8) (actual time=0.921..110.862 rows=300 loops=1) Buffers: shared hit=47730 -> Hash Left Join (cost=171.10..5730.86 rows=1 width=8) (actual time=0.435..2.201 rows=785 loops=1) Hash Cond: (ku.user_id = ad.user_id) Filter: ((ad.deleted IS NULL) OR (ad.deleted = 0)) Buffers: shared hit=743 -> Bitmap Heap Scan on konotor_user ku (cost=160.09..5714.50 rows=1424 width=8) (actual time=0.208..1.327 rows=785 loops=1) Recheck Cond: (((app_id = '12132818272260'::bigint) AND (user_type = 1)) OR ((app_id = '12132818272260'::bigint) AND (user_type = 2))) Heap Blocks: exact=729 Buffers: shared hit=740 -> BitmapOr (cost=160.09..160.09 rows=1425 width=0) (actual time=0.116..0.116 rows=0 loops=1) Buffers: shared hit=11 -> Bitmap Index Scan on konotor_user_app_id_user_type_idx (cost=0.00..88.42 rows=786 width=0) (actual time=0.010..0.010 rows=1 loops=1) Index Cond: ((app_id = '12132818272260'::bigint) AND (user_type = 1)) Buffers: shared hit=4 -> Bitmap Index Scan on konotor_user_app_id_user_type_idx (cost=0.00..70.95 rows=639 width=0) (actual time=0.105..0.105 rows=784 loops=1) Index Cond: ((app_id = '12132818272260'::bigint) AND (user_type = 2)) Buffers: shared hit=7 -> Hash (cost=6.56..6.56 rows=356 width=10) (actual time=0.220..0.220 rows=356 loops=1) Buckets: 1024 Batches: 1 Memory Usage: 23kB Buffers: shared hit=3 -> Seq Scan on agent_details ad (cost=0.00..6.56 rows=356 width=10) (actual time=0.003..0.101 rows=356 loops=1) Buffers: shared hit=3 -> Nested Loop (cost=0.57..115.82 rows=1 width=8) (actual time=0.138..0.138 rows=1 loops=785) Buffers: shared hit=46987 -> Index Only Scan using uk_groupid_userid on group_user gu (cost=0.29..115.12 rows=2 width=16) (actual time=0.135..0.135 rows=1 loops=785) Index Cond: (user_id = ku.user_id) Heap Fetches: 456 Buffers: shared hit=45529 -> Index Scan using groups_pkey on groups (cost=0.28..0.34 rows=1 width=8) (actual time=0.002..0.002 rows=1 loops=486) Index Cond: (group_id = gu.group_id) Filter: ((NOT deleted) AND (app_id = '12132818272260'::bigint)) Rows Removed by Filter: 0 Buffers: shared hit=1458 Planning time: 0.534 ms Execution time: 110.999 ms (36 rows) *PostgreSQL version : PostgreSQL 9.6.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9), 64-bit* Thanks in advance for your valuable time and inputs. Regards, Amarendra