explain.depesz.com

PostgreSQL's explain analyze made readable

Result: hHua

Settings
# exclusive inclusive rows x rows loops node
1. 5.728 8,857.259 ↓ 1,000.0 1,000 1

Nested Loop (cost=27.01..688,298.48 rows=1 width=4,334) (actual time=6,188.756..8,857.259 rows=1,000 loops=1)

  • Buffers: shared hit=33526 read=479926
2. 4.596 8,849.531 ↓ 1,000.0 1,000 1

Nested Loop (cost=26.86..688,295.3 rows=1 width=4,264) (actual time=6,188.737..8,849.531 rows=1,000 loops=1)

  • Buffers: shared hit=31526 read=479926
3. 4.708 8,839.935 ↓ 1,000.0 1,000 1

Nested Loop (cost=26.44..688,291.86 rows=1 width=2,744) (actual time=6,188.71..8,839.935 rows=1,000 loops=1)

  • Buffers: shared hit=27526 read=479926
4. 4,291.085 8,833.227 ↓ 1,000.0 1,000 1

Hash Join (cost=26.3..688,291.69 rows=1 width=2,639) (actual time=6,188.68..8,833.227 rows=1,000 loops=1)

  • Buffers: shared hit=25526 read=479926
5. 4,487.101 4,487.101 ↑ 1.0 11,876,456 1

Seq Scan on fact_contract_view fact_contract_view (cost=0..599,191.36 rows=11,876,536 width=498) (actual time=0.018..4,487.101 rows=11,876,456 loops=1)

  • Buffers: shared hit=500 read=479926
6. 3.565 55.041 ↓ 1,000.0 1,000 1

Hash (cost=26.29..26.29 rows=1 width=2,141) (actual time=55.041..55.041 rows=1,000 loops=1)

  • Buffers: shared hit=25026
7. 3.528 51.476 ↓ 1,000.0 1,000 1

Nested Loop (cost=17.92..26.29 rows=1 width=2,141) (actual time=27.974..51.476 rows=1,000 loops=1)

  • Buffers: shared hit=25026
8. 2.807 44.948 ↓ 1,000.0 1,000 1

Nested Loop (cost=17.77..26.11 rows=1 width=1,983) (actual time=27.955..44.948 rows=1,000 loops=1)

  • Buffers: shared hit=23026
9. 2.825 38.141 ↓ 1,000.0 1,000 1

Nested Loop (cost=17.48..22.8 rows=1 width=1,769) (actual time=27.932..38.141 rows=1,000 loops=1)

  • Buffers: shared hit=20026
10. 2.426 30.316 ↓ 1,000.0 1,000 1

Hash Join (cost=17.06..19.37 rows=1 width=842) (actual time=27.905..30.316 rows=1,000 loops=1)

  • Buffers: shared hit=16026
11. 0.029 0.029 ↓ 1.0 96 1

Seq Scan on dim_accrual_run dim_accrual_run (cost=0..1.94 rows=94 width=17) (actual time=0.011..0.029 rows=96 loops=1)

  • Buffers: shared hit=1
12. 2.278 27.861 ↓ 1,000.0 1,000 1

Hash (cost=17.05..17.05 rows=1 width=825) (actual time=27.86..27.861 rows=1,000 loops=1)

  • Buffers: shared hit=16025
13. 1.834 25.583 ↓ 1,000.0 1,000 1

Nested Loop (cost=2.11..17.05 rows=1 width=825) (actual time=0.114..25.583 rows=1,000 loops=1)

  • Buffers: shared hit=16025
14. 2.108 19.749 ↓ 1,000.0 1,000 1

Nested Loop (cost=1.69..13.62 rows=1 width=764) (actual time=0.098..19.749 rows=1,000 loops=1)

  • Buffers: shared hit=12025
15. 1.822 13.641 ↓ 1,000.0 1,000 1

Nested Loop (cost=1.27..10.18 rows=1 width=611) (actual time=0.081..13.641 rows=1,000 loops=1)

  • Buffers: shared hit=8025
16. 0.280 7.819 ↓ 1,000.0 1,000 1

Limit (cost=0.85..6.73 rows=1 width=405) (actual time=0.064..7.819 rows=1,000 loops=1)

  • Buffers: shared hit=4025
17. 2.404 7.539 ↓ 1,000.0 1,000 1

Nested Loop (cost=0.85..6.73 rows=1 width=405) (actual time=0.063..7.539 rows=1,000 loops=1)

  • Buffers: shared hit=4025
18. 1.135 1.135 ↓ 1,000.0 1,000 1

Index Scan using fact_accrual_client_sk_idx on fact_accrual fa (cost=0.43..3.26 rows=1 width=97) (actual time=0.042..1.135 rows=1,000 loops=1)

  • Index Cond: (fa.client_sk = 27)
  • Buffers: shared hit=27
19. 4.000 4.000 ↑ 1.0 1 1,000

Index Scan using product_uom_conversion_pkey on fact_product_uom_conversion fpuc (cost=0.42..3.44 rows=1 width=60) (actual time=0.004..0.004 rows=1 loops=1,000)

  • Index Cond: ((fa.product_sk = fpuc.product_sk) AND (fa.uom_sk = fpuc.uom_sk))
  • Buffers: shared hit=3998
20. 4.000 4.000 ↑ 1.0 1 1,000

Index Scan using dim_contract_amend_version_contract_amend_version_sk_idx on dim_contract_amend_version dim_contract_amend_version (cost=0.42..3.44 rows=1 width=206) (actual time=0.004..0.004 rows=1 loops=1,000)

  • Index Cond: (dim_contract_amend_version.contract_amend_version_sk = fa.contract_amend_version_sk)
  • Buffers: shared hit=4000
21. 4.000 4.000 ↑ 1.0 1 1,000

Index Scan using idx_dim_date_pkey on dim_date dim_date (cost=0.42..3.44 rows=1 width=153) (actual time=0.004..0.004 rows=1 loops=1,000)

  • Index Cond: ((dim_date.date = fa.accrual_date) AND (dim_date.client_sk = fa.client_sk))
  • Buffers: shared hit=4000
22. 4.000 4.000 ↑ 1.0 1 1,000

Index Scan using dim_contract_renew_version_contract_renew_version_sk_idx on dim_contract_renew_version dim_contract_renew_version (cost=0.42..3.44 rows=1 width=61) (actual time=0.004..0.004 rows=1 loops=1,000)

  • Index Cond: (dim_contract_renew_version.contract_renew_version_sk = fa.contract_renew_version_sk)
  • Buffers: shared hit=4000
23. 5.000 5.000 ↑ 1.0 1 1,000

Index Scan using dim_product_pkey on dim_product dim_product (cost=0.42..3.44 rows=1 width=927) (actual time=0.005..0.005 rows=1 loops=1,000)

  • Index Cond: (dim_product.product_sk = fa.product_sk)
  • Buffers: shared hit=4000
24. 4.000 4.000 ↑ 1.0 1 1,000

Index Scan using dim_contract_family_contract_family_sk_idx on dim_contract_family dim_contract_family (cost=0.29..3.31 rows=1 width=214) (actual time=0.004..0.004 rows=1 loops=1,000)

  • Index Cond: (dim_contract_family.contract_family_sk = fa.contract_family_sk)
  • Buffers: shared hit=3000
25. 3.000 3.000 ↑ 1.0 1 1,000

Index Scan using dim_contract_template_pkey on dim_contract_template dim_contract_template (cost=0.14..0.17 rows=1 width=158) (actual time=0.003..0.003 rows=1 loops=1,000)

  • Index Cond: (dim_contract_template.contract_template_sk = dim_contract_family.contract_template_sk)
  • Filter: (dim_contract_family.client_sk = dim_contract_template.client_sk)
  • Buffers: shared hit=2000
26. 2.000 2.000 ↑ 1.0 1 1,000

Index Scan using dim_client_pkey on dim_client dim_client (cost=0.14..0.16 rows=1 width=105) (actual time=0.002..0.002 rows=1 loops=1,000)

  • Index Cond: (dim_client.client_sk = fact_contract_view.client_sk)
  • Buffers: shared hit=2000
27. 5.000 5.000 ↑ 1.0 1 1,000

Index Scan using dim_company_company_sk_idx on dim_company dim_company (cost=0.42..3.44 rows=1 width=1,520) (actual time=0.005..0.005 rows=1 loops=1,000)

  • Index Cond: (dim_company.company_sk = fa.accrual_company_sk)
  • Buffers: shared hit=4000
28. 2.000 2.000 ↑ 1.0 1 1,000

Index Scan using dim_lumpsum_pkey on dim_lumpsum dim_lumpsum (cost=0.15..3.17 rows=1 width=70) (actual time=0.002..0.002 rows=1 loops=1,000)

  • Index Cond: (dim_lumpsum.lumpsum_sk = fa.lumpsum_sk)
  • Buffers: shared hit=2000