explain.depesz.com

PostgreSQL's explain analyze made readable

Result: JkA1

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

Gather Merge (cost=13,405.91..13,483.08 rows=671 width=7,095) (actual rows= loops=)

  • Workers Planned: 1
2. 0.000 0.000 ↓ 0.0

Sort (cost=12,405.90..12,407.58 rows=671 width=7,095) (actual rows= loops=)

  • Sort Key: money_transaction.transaction_time DESC
3. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=3,764.54..10,330.40 rows=671 width=7,095) (actual rows= loops=)

  • Hash Cond: (money_transaction.id = ledger_pendingtransactionledgerentry.transaction_id)
4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=3,678.87..10,242.97 rows=671 width=6,053) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=3,678.45..4,932.91 rows=671 width=5,727) (actual rows= loops=)

  • Hash Cond: (money_transaction.bank_payment_reference_id = money_vendorpayment.id)
6. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=3,628.51..4,880.10 rows=671 width=4,984) (actual rows= loops=)

  • Hash Cond: (money_transaction.vendor_id = t9.id)
7. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=3,603.15..4,852.98 rows=671 width=4,571) (actual rows= loops=)

  • Hash Cond: (customer_user.accounting_policy_id = ledger_accountingpolicy.id)
8. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=3,600.84..4,848.82 rows=671 width=4,526) (actual rows= loops=)

  • Hash Cond: (service_subscription.owner_id = customer_user.id)
9. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=3,581.78..4,827.97 rows=671 width=4,220) (actual rows= loops=)

  • Hash Cond: (service_subscription.vendor_id = service_vendor.id)
10. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=264.33..1,502.50 rows=671 width=3,481) (actual rows= loops=)

  • Hash Cond: (money_transaction.subscription_id = service_subscription.id)
11. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=233.10..1,469.49 rows=671 width=3,255) (actual rows= loops=)

  • Hash Cond: (money_transaction.id = ledger_ledgerentry.transaction_id)
  • Filter: ((NOT ledger_ledgerentry.is_synced) OR (ledger_ledgerentry.is_synced IS NULL))
12. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on money_transaction (cost=0.00..1,233.21 rows=1,211 width=1,803) (actual rows= loops=)

  • Filter: ((required_for_computation OR required_for_ui_without_computation) AND (company_id = 1) AND ((((state)::text = 'completion'::text) AND ((type)::text <> ALL ('{authorization.reversal,authorization.reversal.issuerexpiration,gpa.credit.authorization.reversal,gpa.credit.networkload.reversal,gpa.credit.pending.reversal,gpa.credit.reversal,pindebit.authorization.reversal.issuerexpiration,pindebit.refund.reversal,pindebit.reversal,authorization.clearing.chargeback,authorization.clearing.chargeback.provisional.credit,authorization.clearing.chargeback.provisional.debit}'::text[]))) OR ((bank_payment_status)::text = ANY ('{inbound_succeeded,outbound_succeeded,inbound_reversal_succeeded,cancel_succeeded}'::text[])) OR ((check_payment_status)::text = ANY ('{inbound_succeeded,check_presented,inbound_reversal_succeeded,cancel_succeeded}'::text[]))))
13. 0.000 0.000 ↓ 0.0

Hash (cost=208.60..208.60 rows=1,960 width=1,452) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Seq Scan on ledger_ledgerentry (cost=0.00..208.60 rows=1,960 width=1,452) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Hash (cost=21.66..21.66 rows=766 width=226) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Seq Scan on service_subscription (cost=0.00..21.66 rows=766 width=226) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Hash (cost=3,312.24..3,312.24 rows=416 width=739) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.42..3,312.24 rows=416 width=739) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Seq Scan on service_vendor (cost=0.00..20.16 rows=416 width=413) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Index Scan using service_service_pkey on service_service (cost=0.42..7.91 rows=1 width=326) (actual rows= loops=)

  • Index Cond: (id = service_vendor.service_id)
21. 0.000 0.000 ↓ 0.0

Hash (cost=15.14..15.14 rows=314 width=306) (actual rows= loops=)

22. 0.000 0.000 ↓ 0.0

Seq Scan on customer_user (cost=0.00..15.14 rows=314 width=306) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Hash (cost=1.58..1.58 rows=58 width=45) (actual rows= loops=)

24. 0.000 0.000 ↓ 0.0

Seq Scan on ledger_accountingpolicy (cost=0.00..1.58 rows=58 width=45) (actual rows= loops=)

25. 0.000 0.000 ↓ 0.0

Hash (cost=20.16..20.16 rows=416 width=413) (actual rows= loops=)

26. 0.000 0.000 ↓ 0.0

Seq Scan on service_vendor t9 (cost=0.00..20.16 rows=416 width=413) (actual rows= loops=)

27. 0.000 0.000 ↓ 0.0

Hash (cost=46.85..46.85 rows=247 width=743) (actual rows= loops=)

28. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=28.62..46.85 rows=247 width=743) (actual rows= loops=)

  • Hash Cond: (service_bill.requested_by_id = t13.id)
29. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=9.56..27.13 rows=247 width=437) (actual rows= loops=)

  • Hash Cond: (service_bill.id = money_vendorpayment.bill_id)
30. 0.000 0.000 ↓ 0.0

Seq Scan on service_bill (cost=0.00..16.82 rows=282 width=355) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Hash (cost=6.47..6.47 rows=247 width=82) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Seq Scan on money_vendorpayment (cost=0.00..6.47 rows=247 width=82) (actual rows= loops=)

33. 0.000 0.000 ↓ 0.0

Hash (cost=15.14..15.14 rows=314 width=306) (actual rows= loops=)

34. 0.000 0.000 ↓ 0.0

Seq Scan on customer_user t13 (cost=0.00..15.14 rows=314 width=306) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

Index Scan using service_service_pkey on service_service t10 (cost=0.42..7.91 rows=1 width=326) (actual rows= loops=)

  • Index Cond: (id = t9.service_id)
36. 0.000 0.000 ↓ 0.0

Hash (cost=77.52..77.52 rows=652 width=1,042) (actual rows= loops=)

37. 0.000 0.000 ↓ 0.0

Seq Scan on ledger_pendingtransactionledgerentry (cost=0.00..77.52 rows=652 width=1,042) (actual rows= loops=)