explain.depesz.com

PostgreSQL's explain analyze made readable

Result: j6Ni

Settings
# exclusive inclusive rows x rows loops node
1. 18.608 98,644.653 ↑ 1.0 1 1

Aggregate (cost=1,567,132.61..1,567,132.62 rows=1 width=16) (actual time=98,644.652..98,644.653 rows=1 loops=1)

  • Output: count(DISTINCT guid)
  • Buffers: shared hit=41578 read=881624
2. 97,885.808 98,626.045 ↓ 1.2 10,490 1

Bitmap Heap Scan on public.mv_person_grid persongrid0_ (cost=37,277.51..1,567,110.94 rows=8,668 width=16) (actual time=1,188.684..98,626.045 rows=10,490 loops=1)

  • Output: guid, first_name, first_name_lower, second_name, second_name_lower, last_name, last_name_lower, birth_date, birthdate_studyyear, age, organization_guid, organization_name, org_type_group, parallel, studyyear, max_studyyear, start_date, end_date, group_guid, edu_level_code, edu_level_group_code, doc_type, doc_series, doc_number, has_death_document, birthdoc, passport, primary_role, unbound, student, staff, austaff, parent, active, gender, snils, phone, email, city_guid, state_guid, region_guid, federal_subject_guid, authority_guid, russian, birthplace, registrationaddress, citizenship, medical_group, pt_group, tight_situation, disability_group, long_therapy_needy, adapt_program_needy, death_date, death_place, has_death, has_passport, has_birthdoc, provider, provider_name
  • Recheck Cond: ((persongrid0_.studyyear = 2018) AND (persongrid0_.primary_role = 'student'::text))
  • Filter: ((persongrid0_.authority_guid)::text = 'bfc5d9c6-33e8-4c9e-8f5f-862db6b8c357'::text)
  • Rows Removed by Filter: 1697555
  • Buffers: shared hit=41573 read=881624
3. 740.237 740.237 ↑ 1.0 1,708,045 1

Bitmap Index Scan on mv_person_grid_org_type_studyyear_student_idx (cost=0.00..37,275.34 rows=1,733,678 width=0) (actual time=740.237..740.237 rows=1,708,045 loops=1)

  • Index Cond: ((persongrid0_.studyyear = 2018) AND (persongrid0_.primary_role = 'student'::text))
  • Buffers: shared read=6548