explain.depesz.com

PostgreSQL's explain analyze made readable

Result: vrfR

Settings
# exclusive inclusive rows x rows loops node
1. 26.441 26.648 ↑ 2.7 984 1

Bitmap Heap Scan on _userprivate (cost=85.05..19,201.53 rows=2,659 width=32) (actual time=0.342..26.648 rows=984 loops=1)

  • Recheck Cond: (((json -> 'roles'::text) @> '"role_c1d73c81440c4f808ad58d6994ce7380"'::jsonb) OR ((json -> 'inactive_roles'::text) @> '"role_c1d73c81440c4f808ad58d6994ce7380"'::jsonb))
  • Filter: ((NOT deleted) AND (((json -> 'deleted'::text) IS NULL) OR (NOT ((json ->> 'deleted'::text))::boolean)))
  • Heap Blocks: exact=951
  • Buffers: shared hit=4547
2. 0.000 0.207 ↓ 0.0 0 1

BitmapOr (cost=85.05..85.05 rows=5,296 width=0) (actual time=0.207..0.207 rows=0 loops=1)

  • Buffers: shared hit=10
3. 0.081 0.081 ↑ 6.0 443 1

Bitmap Index Scan on userprivate_roles_idx (cost=0.00..47.86 rows=2,648 width=0) (actual time=0.081..0.081 rows=443 loops=1)

  • Index Cond: ((json -> 'roles'::text) @> '"role_c1d73c81440c4f808ad58d6994ce7380"'::jsonb)
  • Buffers: shared hit=6
4. 0.126 0.126 ↑ 4.9 541 1

Bitmap Index Scan on userprivate_inactive_roles_idx (cost=0.00..35.86 rows=2,648 width=0) (actual time=0.125..0.126 rows=541 loops=1)

  • Index Cond: ((json -> 'inactive_roles'::text) @> '"role_c1d73c81440c4f808ad58d6994ce7380"'::jsonb)
  • Buffers: shared hit=4
Planning time : 0.140 ms
Execution time : 26.739 ms