explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 6rn4Y

Settings
# exclusive inclusive rows x rows loops node
1. 15.509 1,011,338.603 ↑ 450.8 4,056 1

Hash Join (cost=2,413.45..52,557,281.18 rows=1,828,314 width=26) (actual time=125.872..1,011,338.603 rows=4,056 loops=1)

  • Hash Cond: (d.name = ra.domain_name)
2. 351.189 1,011,294.543 ↑ 5,084.1 4,056 1

Nested Loop (cost=11.60..52,145,381.92 rows=20,620,961 width=18) (actual time=97.162..1,011,294.543 rows=4,056 loops=1)

3. 320.254 320.254 ↓ 3.0 369,650 1

Seq Scan on _tmp_dictionary_words dw (cost=0.00..9,376.55 rows=123,368 width=10) (actual time=22.069..320.254 rows=369,650 loops=1)

  • Filter: (length(word) > 2)
  • Rows Removed by Filter: 453
4. 3,696.500 1,010,623.100 ↓ 0.0 0 369,650

Bitmap Heap Scan on domain d (cost=11.60..420.94 rows=167 width=18) (actual time=2.733..2.734 rows=0 loops=369,650)

  • Recheck Cond: (domain_guess(name) ~~ dw.word)
  • Rows Removed by Index Recheck: 0
  • Filter: (rgp_status_name = 'pendingDelete'::text)
  • Rows Removed by Filter: 0
  • Heap Blocks: exact=67,701
5. 1,006,926.600 1,006,926.600 ↓ 0.0 0 369,650

Bitmap Index Scan on domain_name_domain_guess_trgm_idx (cost=0.00..11.56 rows=1,539 width=0) (actual time=2.724..2.724 rows=0 loops=369,650)

  • Index Cond: (domain_guess(name) ~~ dw.word)
6. 8.422 28.551 ↓ 1.1 31,097 1

Hash (cost=2,060.79..2,060.79 rows=27,285 width=22) (actual time=28.551..28.551 rows=31,097 loops=1)

  • Buckets: 32,768 Batches: 1 Memory Usage: 1,930kB
7. 20.129 20.129 ↓ 1.1 31,097 1

Seq Scan on rgp_action ra (cost=0.00..2,060.79 rows=27,285 width=22) (actual time=4.912..20.129 rows=31,097 loops=1)

  • Filter: (rgp_to_status = 'pendingDelete'::text)
  • Rows Removed by Filter: 49,541