explain.depesz.com

PostgreSQL's explain analyze made readable

Result: EWcE

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

Unique (cost=0..0 rows=0 width=0) (actual rows=18,000 loops=1)

2. 0.000 0.000 ↓ 0.0 18,000 1

Sort (cost=0..0 rows=0 width=0) (actual rows=18,000 loops=1)

  • Sort Key: transaction_labels."TransactionId", transaction_labels."CaseId", transaction_labels."LabelSetId", transaction_labels."LabellerId", "TransactionLabels"."ClassifierId", "TransactionLabels"."Label", "TransactionLabels"."Id", ((consensus_base.consensus_count / (decisionlabels.label_total)::numeric))
  • Sort Method: quicksort Memory: 3117kB
3. 0.000 0.000 ↓ 0.0 18,000 1

Hash Join (cost=0..0 rows=0 width=0) (actual rows=18,000 loops=1)

4. 0.000 0.000 ↓ 0.0 18,000 1

Hash Join (cost=0..0 rows=0 width=0) (actual rows=18,000 loops=1)

5. 0.000 0.000 ↓ 0.0 18,000 1

Hash Join (cost=0..0 rows=0 width=0) (actual rows=18,000 loops=1)

6. 0.000 0.000 ↓ 0.0 18,000 1

Seq Scan on TransactionLabels TransactionLabels (cost=0..0 rows=0 width=0) (actual rows=18,000 loops=1)

7. 0.000 0.000 ↓ 0.0 3,000 1

Hash (cost=0..0 rows=0 width=0) (actual rows=3,000 loops=1)

8. 0.000 0.000 ↓ 0.0 3,000 1

Hash Join (cost=0..0 rows=0 width=0) (actual rows=3,000 loops=1)

9. 0.000 0.000 ↓ 0.0 18,000 1

Seq Scan on TransactionLabels transaction_labels (cost=0..0 rows=0 width=0) (actual rows=18,000 loops=1)

10. 0.000 0.000 ↓ 0.0 1,000 1

Hash (cost=0..0 rows=0 width=0) (actual rows=1,000 loops=1)

11. 0.000 0.000 ↓ 0.0 1,000 1

Subquery Scan on consensus_base (cost=0..0 rows=0 width=0) (actual rows=1,000 loops=1)

12. 0.000 0.000 ↓ 0.0 1,000 1

GroupAggregate (cost=0..0 rows=0 width=0) (actual rows=1,000 loops=1)

  • Group Key: selected_transaction_labels."TransactionId", "TransactionLabels_1"."Label"
13. 0.000 0.000 ↓ 0.0 3,000 1

Sort (cost=0..0 rows=0 width=0) (actual rows=3,000 loops=1)

  • Sort Key: selected_transaction_labels."TransactionId", "TransactionLabels_1"."Label"
  • Sort Method: quicksort Memory: 237kB
14. 0.000 0.000 ↓ 0.0 3,000 1

Hash Join (cost=0..0 rows=0 width=0) (actual rows=3,000 loops=1)

15. 0.000 0.000 ↓ 0.0 3,000 1

Seq Scan on TransactionLabels TransactionLabels_1 (cost=0..0 rows=0 width=0) (actual rows=3,000 loops=1)

  • Filter: ("ClassifierId" = 'Decision'::text)
16. 0.000 0.000 ↓ 0.0 1,000 1

Hash (cost=0..0 rows=0 width=0) (actual rows=1,000 loops=1)

17. 0.000 0.000 ↓ 0.0 1,000 1

GroupAggregate (cost=0..0 rows=0 width=0) (actual rows=1,000 loops=1)

  • Group Key: selected_transaction_labels."TransactionId"
  • Filter: (count(DISTINCT selected_transaction_labels."LabelSetId") = 1)
18. 0.000 0.000 ↓ 0.0 3,000 1

Sort (cost=0..0 rows=0 width=0) (actual rows=3,000 loops=1)

  • Sort Key: selected_transaction_labels."TransactionId"
  • Sort Method: quicksort Memory: 248kB
19. 0.000 0.000 ↓ 0.0 3,000 1

Seq Scan on TransactionLabels selected_transaction_labels (cost=0..0 rows=0 width=0) (actual rows=3,000 loops=1)

  • Filter: ("ClassifierId" = 'Decision'::text)
20. 0.000 0.000 ↓ 0.0 10 1

Hash (cost=0..0 rows=0 width=0) (actual rows=10 loops=1)

21. 0.000 0.000 ↓ 0.0 10 1

Seq Scan on LabelSets labelsets (cost=0..0 rows=0 width=0) (actual rows=10 loops=1)

  • Filter: "Completed"
22. 0.000 0.000 ↓ 0.0 1,000 1

Hash (cost=0..0 rows=0 width=0) (actual rows=1,000 loops=1)

23. 0.000 0.000 ↓ 0.0 1,000 1

Subquery Scan on decisionlabels (cost=0..0 rows=0 width=0) (actual rows=1,000 loops=1)

24. 0.000 0.000 ↓ 0.0 1,000 1

HashAggregate (cost=0..0 rows=0 width=0) (actual rows=1,000 loops=1)

  • Group Key: "TransactionLabels_2"."TransactionId", "TransactionLabels_2"."ClassifierId", "TransactionLabels_2"."LabelSetId"
25. 0.000 0.000 ↓ 0.0 3,000 1

Seq Scan on TransactionLabels TransactionLabels_2 (cost=0..0 rows=0 width=0) (actual rows=3,000 loops=1)

  • Filter: ("ClassifierId" = 'Decision'::text)