explain.depesz.com

PostgreSQL's explain analyze made readable

Result: YhBy

Settings
# exclusive inclusive rows x rows loops node
1. 3.002 57.710 ↓ 165.0 165 1

GroupAggregate (cost=5,501.55..5,501.66 rows=1 width=278) (actual time=54.643..57.710 rows=165 loops=1)

  • Group Key: co.firstname, co.lastname, ip.team__c, qa.property_consultant__c, ip.employment_status__c
2. 3.424 54.708 ↓ 1,153.0 1,153 1

Sort (cost=5,501.55..5,501.56 rows=1 width=81) (actual time=54.581..54.708 rows=1,153 loops=1)

  • Sort Key: co.firstname, co.lastname, ip.team__c, qa.property_consultant__c, ip.employment_status__c
  • Sort Method: quicksort Memory: 211kB
3. 0.767 51.284 ↓ 1,153.0 1,153 1

Nested Loop Left Join (cost=1,145.10..5,501.54 rows=1 width=81) (actual time=2.210..51.284 rows=1,153 loops=1)

4. 2.240 36.681 ↓ 1,153.0 1,153 1

Hash Join (cost=1,144.83..5,497.99 rows=1 width=80) (actual time=2.173..36.681 rows=1,153 loops=1)

  • Hash Cond: ((qa.property_consultant__c)::text = (co.sfid)::text)
5. 32.377 32.377 ↓ 1.4 1,153 1

Seq Scan on qa_form__c qa (cost=0.00..4,343.00 rows=805 width=46) (actual time=0.028..32.377 rows=1,153 loops=1)

  • Filter: (((shop_category__c)::text = ANY ('{Leasing,Maintenance}'::text[])) AND (qa_form_created_date__c >= '2018-10-09 14:30:45'::timestamp without time zone) AND (qa_form_created_date__c < '2019-01-07 15:30:45'::timestamp withou (...)
  • Rows Removed by Filter: 19345
6. 0.374 2.064 ↑ 10.3 497 1

Hash (cost=1,080.91..1,080.91 rows=5,114 width=34) (actual time=2.064..2.064 rows=497 loops=1)

  • Buckets: 8192 Batches: 1 Memory Usage: 96kB
7. 1.690 1.690 ↑ 10.3 497 1

Index Scan using hc_idx_contact_recordtypeid on contact co (cost=0.56..1,080.91 rows=5,114 width=34) (actual time=0.066..1.690 rows=497 loops=1)

  • Index Cond: ((recordtypeid)::text = '0120H000001O7IWQA0'::text)
8. 13.836 13.836 ↑ 1.0 1 1,153

Index Scan using hc_idx_internal_app_permissions__c_contact__c on internal_app_permissions__c ip (cost=0.27..3.54 rows=1 width=39) (actual time=0.011..0.012 rows=1 loops=1,153)

  • Index Cond: ((contact__c)::text = (co.sfid)::text)
  • Filter: ((employment_status__c)::text = 'Active'::text)
  • Rows Removed by Filter: 0