explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Y67Z

Settings
# exclusive inclusive rows x rows loops node
1. 0.682 14.869 ↑ 1.0 1 1

Aggregate (cost=95,253.78..95,253.79 rows=1 width=8) (actual time=14.869..14.869 rows=1 loops=1)

  • Output: count(*)
  • Buffers: shared hit=555
2. 2.838 14.187 ↑ 17.9 5,691 1

Hash Join (cost=175.23..94,999.73 rows=101,620 width=0) (actual time=3.425..14.187 rows=5,691 loops=1)

  • Inner Unique: true
  • Hash Cond: (loadfile.fileindex = super_threads.fileindex)
  • Join Filter: (((super_threads.super_fileindex = super_threads.fileindex) OR (datascope.exclude_nonrep_exact_dups IS FALSE)) AND ((super_threads.merged_similarity >= datascope.near_dup_threshold) OR (datascope.exclude_nonrep_near_dups IS FALSE)))
  • Buffers: shared hit=555
3. 3.531 8.002 ↑ 53.3 5,691 1

Nested Loop (cost=1.18..94,029.12 rows=303,343 width=14) (actual time=0.065..8.002 rows=5,691 loops=1)

  • Output: loadfile.fileindex, datascope.exclude_nonrep_exact_dups, datascope.near_dup_threshold, datascope.exclude_nonrep_near_dups
  • Join Filter: (((datascope.exclude_docs_with_no_dates IS FALSE) OR ((datascope.exclude_docs_with_no_dates IS TRUE) AND (loadfile.resolved_date IS NOT NULL))) AND ((doc_sim.similar_fileindex IS NULL) OR (datascope.exclude_nonrep_exact_dups IS FALSE)) AND ((loadfile.resolved_date >= datascope.date_from) OR (datascope.date_from IS NULL)) AND ((loadfile.resolved_date <= datascope.date_to) OR (datascope.date_to IS NULL)))
  • Buffers: shared hit=509
4. 2.758 4.471 ↑ 1.0 5,691 1

Hash Left Join (cost=1.18..586.51 rows=5,691 width=16) (actual time=0.048..4.471 rows=5,691 loops=1)

  • Output: loadfile.fileindex, loadfile.resolved_date, doc_sim.similar_fileindex
  • Hash Cond: (loadfile.fileindex = doc_sim.similar_fileindex)
  • Buffers: shared hit=508
5. 1.695 1.695 ↑ 1.0 5,691 1

Seq Scan on public.primerloadfile loadfile (cost=0.00..563.91 rows=5,691 width=12) (actual time=0.019..1.695 rows=5,691 loops=1)

  • Output: loadfile.fileindex, loadfile.docid, loadfile.from_email, loadfile.to_email, loadfile.cc_email, loadfile.bcc_email, loadfile.subject, loadfile.title, loadfile.intmsgid, loadfile.inreplytoid, loadfile.filename, loadfile.file_extension, loadfile.filepath, loadfile.filesize, loadfile.timezone, loadfile.date_created, loadfile.date_modified, loadfile.date_printed, loadfile.date_lastsaved, loadfile.date_accessed, loadfile.date_senton, loadfile.date_received, loadfile.resolved_date, loadfile.custodian, loadfile.authorname, loadfile.company, loadfile.comments, loadfile.document_type, loadfile.document_category, loadfile.textpath, loadfile.nativepath, loadfile.md5hash, loadfile.sha1, loadfile.parent_docid, loadfile.attachment_docids, loadfile.attachment_list, loadfile.attachment_count, loadfile.language, loadfile.responsiveness, loadfile.display_name, loadfile.tika_status
  • Buffers: shared hit=507
6. 0.007 0.018 ↑ 1.0 8 1

Hash (cost=1.08..1.08 rows=8 width=4) (actual time=0.017..0.018 rows=8 loops=1)

  • Output: doc_sim.similar_fileindex
  • Buckets: 1024 Batches: 1 Memory Usage: 9kB
  • Buffers: shared hit=1
7. 0.011 0.011 ↑ 1.0 8 1

Seq Scan on public.document_similarity_model doc_sim (cost=0.00..1.08 rows=8 width=4) (actual time=0.008..0.011 rows=8 loops=1)

  • Output: doc_sim.similar_fileindex
  • Buffers: shared hit=1
8. 0.000 0.000 ↑ 938.0 1 5,691

Materialize (cost=0.00..27.19 rows=938 width=27) (actual time=0.000..0.000 rows=1 loops=5,691)

  • Output: datascope.date_from, datascope.date_to, datascope.exclude_docs_with_no_dates, datascope.exclude_nonrep_exact_dups, datascope.near_dup_threshold, datascope.exclude_nonrep_near_dups
  • Buffers: shared hit=1
9. 0.011 0.011 ↑ 938.0 1 1

Seq Scan on public.datascope (cost=0.00..22.50 rows=938 width=27) (actual time=0.010..0.011 rows=1 loops=1)

  • Output: datascope.date_from, datascope.date_to, datascope.exclude_docs_with_no_dates, datascope.exclude_nonrep_exact_dups, datascope.near_dup_threshold, datascope.exclude_nonrep_near_dups
  • Filter: ((datascope.exclude_docs_with_no_dates IS FALSE) OR (datascope.exclude_docs_with_no_dates IS TRUE))
  • Buffers: shared hit=1
10. 1.657 3.347 ↑ 1.0 5,691 1

Hash (cost=102.91..102.91 rows=5,691 width=16) (actual time=3.347..3.347 rows=5,691 loops=1)

  • Output: super_threads.fileindex, super_threads.super_fileindex, super_threads.merged_similarity
  • Buckets: 8192 Batches: 1 Memory Usage: 331kB
  • Buffers: shared hit=46
11. 1.690 1.690 ↑ 1.0 5,691 1

Seq Scan on public.super_threads_model super_threads (cost=0.00..102.91 rows=5,691 width=16) (actual time=0.012..1.690 rows=5,691 loops=1)

  • Output: super_threads.fileindex, super_threads.super_fileindex, super_threads.merged_similarity
  • Buffers: shared hit=46
Planning time : 1.305 ms
Execution time : 14.979 ms