explain.depesz.com

PostgreSQL's explain analyze made readable

Result: H2Mr

Settings
# exclusive inclusive rows x rows loops node
1. 8.462 15,176.720 ↓ 100.0 100 1

Limit (cost=5,914.63..5,914.63 rows=1 width=587) (actual time=15,176.684..15,176.720 rows=100 loops=1)

2. 207.049 15,168.258 ↓ 147,450.0 294,900 1

Sort (cost=5,914.62..5,914.63 rows=2 width=587) (actual time=15,131.750..15,168.258 rows=294,900 loops=1)

  • Sort Key: page_fetches_201912.access_ts DESC
  • Sort Method: external merge Disk: 46,312kB
3. 249.150 14,961.209 ↓ 147,532.5 295,065 1

WindowAgg (cost=3,803.91..5,914.61 rows=2 width=587) (actual time=14,902.019..14,961.209 rows=295,065 loops=1)

4. 20.360 14,712.059 ↓ 147,532.5 295,065 1

Append (cost=3,803.91..5,914.59 rows=2 width=579) (actual time=5,269.901..14,712.059 rows=295,065 loops=1)

5. 0.005 827.018 ↓ 0.0 0 1

Bitmap Heap Scan on page_fetches_201912 (cost=3,803.91..3,820.06 rows=1 width=109) (actual time=827.018..827.018 rows=0 loops=1)

  • Recheck Cond: ((user_id = 10) AND (access_ts >= '2019-12-25 00:00:00'::timestamp without time zone))
  • Filter: ((NOT is_ajax) AND (admin_user_id IS NULL) AND ((uri_path)::text !~~ '/api/%'::text) AND ((uri_path)::text !~~ '/assets/%'::text) AND ((uri_path)::text !~~ '/my-history%'::text) AND ((uri_path)::text !~~ '/content-assets/%'::text) AND ((uri_path)::text !~~ '/fawkesian/%'::text) AND ((uri_path)::text !~~ '/account/get-token-data%'::text) AND ((uri_path)::text !~~ '/account/user-details-by-token%'::text) AND ((site_code)::text = 'VROL'::text) AND (http_status_code = 200) AND ((method)::text = 'GET'::text))
6. 5.531 827.013 ↓ 0.0 0 1

BitmapAnd (cost=3,803.91..3,803.91 rows=4 width=0) (actual time=827.013..827.013 rows=0 loops=1)

7. 0.062 0.062 ↑ 39.8 24 1

Bitmap Index Scan on page_fetches_201912_user_id_idx (cost=0.00..23.73 rows=955 width=0) (actual time=0.062..0.062 rows=24 loops=1)

  • Index Cond: (user_id = 10)
8. 821.420 821.420 ↓ 52.9 11,174,097 1

Bitmap Index Scan on page_fetches_201912_access_ts_idx (cost=0.00..3,779.93 rows=211,116 width=0) (actual time=821.419..821.420 rows=11,174,097 loops=1)

  • Index Cond: (access_ts >= '2019-12-25 00:00:00'::timestamp without time zone)
9. 11,888.071 13,864.681 ↓ 295,065.0 295,065 1

Bitmap Heap Scan on page_fetches_202001 (cost=1,917.42..2,094.52 rows=1 width=1,048) (actual time=4,442.882..13,864.681 rows=295,065 loops=1)

  • Recheck Cond: (((site_code)::text = 'VROL'::text) AND (http_status_code = 200))
  • Rows Removed by Index Recheck: 1,059,317
  • Filter: ((NOT is_ajax) AND (admin_user_id IS NULL) AND (access_ts >= '2019-12-25 00:00:00'::timestamp without time zone) AND ((uri_path)::text !~~ '/api/%'::text) AND ((uri_path)::text !~~ '/assets/%'::text) AND ((uri_path)::text !~~ '/my-history%'::text) AND ((uri_path)::text !~~ '/content-assets/%'::text) AND ((uri_path)::text !~~ '/fawkesian/%'::text) AND ((uri_path)::text !~~ '/account/get-token-data%'::text) AND ((uri_path)::text !~~ '/account/user-details-by-token%'::text) AND (user_id = 10) AND ((method)::text = 'GET'::text))
  • Rows Removed by Filter: 10,741,856
  • Heap Blocks: exact=436,378 lossy=1,308,296
10. 58.333 1,976.610 ↓ 0.0 0 1

BitmapAnd (cost=1,917.42..1,917.42 rows=44 width=0) (actual time=1,976.610..1,976.610 rows=0 loops=1)

11. 1,014.407 1,014.407 ↓ 1,402.8 12,374,479 1

Bitmap Index Scan on page_fetches_202001_site_code_idx (cost=0.00..958.59 rows=8,821 width=0) (actual time=1,014.407..1,014.407 rows=12,374,479 loops=1)

  • Index Cond: ((site_code)::text = 'VROL'::text)
12. 903.870 903.870 ↓ 1,270.4 11,205,922 1

Bitmap Index Scan on page_fetches_202001_http_status_code_idx (cost=0.00..958.59 rows=8,821 width=0) (actual time=903.870..903.870 rows=11,205,922 loops=1)

  • Index Cond: (http_status_code = 200)