explain.depesz.com

PostgreSQL's explain analyze made readable

Result: FISS : Optimization for: 1; plan #wb4g

Settings

Optimization path:

# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

Sort (cost=1,952,765,232.12..1,955,095,414.46 rows=932,072,935 width=176) (actual rows= loops=)

  • Sort Key: (max(.systime)) DESC
2. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=1,620,081,784.22..1,734,260,718.75 rows=932,072,935 width=176) (actual rows= loops=)

  • Group Key: .messagetype, .imei, .imsi, .phone, .phoneb, .parsedtxt, .countwords
3. 0.000 0.000 ↓ 0.0

Sort (cost=1,620,081,784.22..1,631,732,695.90 rows=4,660,364,675 width=176) (actual rows= loops=)

  • Sort Key: .messagetype, .imei, .imsi, .phone, .phoneb, .parsedtxt, .countwords
4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=12.50..75,229,536.51 rows=4,660,364,675 width=176) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

HashAggregate (cost=12.50..14.50 rows=200 width=32) (actual rows= loops=)

  • Group Key: dblink.phone
6. 0.000 0.000 ↓ 0.0

Function Scan on dblink (cost=0.00..10.00 rows=1,000 width=32) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Append (cost=0.00..375,190.82 rows=95,679 width=175) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Seq Scan on (cost=0.00..0.00 rows=1 width=342) (actual rows= loops=)

  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone) AND (dblink.phone = (phone)::text))
9. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on _2014_07_12 (cost=35.97..5,874.02 rows=1,481 width=158) (actual rows= loops=)

  • Recheck Cond: ((phone)::text = dblink.phone)
  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone))
10. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _2014_07_12_phone (cost=0.00..35.60 rows=1,481 width=0) (actual rows= loops=)

  • Index Cond: ((phone)::text = dblink.phone)
11. 0.000 0.000 ↓ 0.0

Index Scan using _2015_01_06_phone on _2015_01_06 (cost=0.57..11,188.83 rows=2,801 width=157) (actual rows= loops=)

  • Index Cond: ((phone)::text = dblink.phone)
  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone))
12. 0.000 0.000 ↓ 0.0

Index Scan using _2015_07_12_phone on _2015_07_12 (cost=0.57..15,628.46 rows=3,978 width=161) (actual rows= loops=)

  • Index Cond: ((phone)::text = dblink.phone)
  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone))
13. 0.000 0.000 ↓ 0.0

Index Scan using _2016_01_06_phone on _2016_01_06 (cost=0.57..22,022.51 rows=5,713 width=158) (actual rows= loops=)

  • Index Cond: ((phone)::text = dblink.phone)
  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone))
14. 0.000 0.000 ↓ 0.0

Index Scan using _2016_07_12_phone on _2016_07_12 (cost=0.57..40,284.12 rows=10,274 width=168) (actual rows= loops=)

  • Index Cond: ((phone)::text = dblink.phone)
  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone))
15. 0.000 0.000 ↓ 0.0

Index Scan using _2017_01_06_phone on _2017_01_06 (cost=0.57..37,106.45 rows=9,882 width=182) (actual rows= loops=)

  • Index Cond: ((phone)::text = dblink.phone)
  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone))
16. 0.000 0.000 ↓ 0.0

Index Scan using _2017_07_12_phone on _2017_07_12 (cost=0.57..29,491.67 rows=7,606 width=181) (actual rows= loops=)

  • Index Cond: ((phone)::text = dblink.phone)
  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone))
17. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on _2018_01_06 (cost=175.30..30,238.79 rows=7,641 width=183) (actual rows= loops=)

  • Recheck Cond: ((phone)::text = dblink.phone)
  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone))
18. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _2018_01_06_phone (cost=0.00..173.39 rows=7,641 width=0) (actual rows= loops=)

  • Index Cond: ((phone)::text = dblink.phone)
19. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on _2018_07_12 (cost=265.75..45,912.14 rows=11,622 width=182) (actual rows= loops=)

  • Recheck Cond: ((phone)::text = dblink.phone)
  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone))
20. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _2018_07_12_phone (cost=0.00..262.84 rows=11,622 width=0) (actual rows= loops=)

  • Index Cond: ((phone)::text = dblink.phone)
21. 0.000 0.000 ↓ 0.0

Index Scan using _2019_01_06_phone on _2019_01_06 (cost=0.57..49,899.29 rows=12,611 width=182) (actual rows= loops=)

  • Index Cond: ((phone)::text = dblink.phone)
  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone))
22. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on _2019_07_12 (cost=267.29..46,678.07 rows=11,826 width=178) (actual rows= loops=)

  • Recheck Cond: ((phone)::text = dblink.phone)
  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone))
23. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _2019_07_12_phone (cost=0.00..264.33 rows=11,826 width=0) (actual rows= loops=)

  • Index Cond: ((phone)::text = dblink.phone)
24. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on _2020_01_06 (cost=274.79..40,388.06 rows=10,243 width=183) (actual rows= loops=)

  • Recheck Cond: ((phone)::text = dblink.phone)
  • Filter: ((systime >= '2014-10-01 00:00:00'::timestamp without time zone) AND (systime <= '2020-05-20 00:00:00'::timestamp without time zone))
25. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _2020_01_06_phone (cost=0.00..272.23 rows=10,243 width=0) (actual rows= loops=)

  • Index Cond: ((phone)::text = dblink.phone)