explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 6qpe

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

Unique (cost=165,863,014,854.52..172,609,824,549.66 rows=3,200,000 width=136) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=165,863,014,854.52..166,987,483,137.04 rows=449,787,313,009 width=136) (actual rows= loops=)

  • Sort Key: ((_hyper_1141_53057_chunk.event -> 'ip_address'::text)), ((((_hyper_1141_53057_chunk.event -> 'geo_ip'::text) -> 'connection'::text) ->> 'isp'::text)), (((_hyper_1141_53057_chunk.event -> 'geo_ip'::text) ->> 'country'::text)), dist_user_cntry.dist_users, (sum(ip_geo_user_counts_2.successlogin))
3. 0.000 0.000 ↓ 0.0

Hash Join (cost=2,946,072.81..6,769,414,520.02 rows=449,787,313,009 width=136) (actual rows= loops=)

  • Hash Cond: ((_hyper_1141_53057_chunk.event ->> 'ip_address'::text) = (ip_geo_user_counts_2.ip_address)::text)
4. 0.000 0.000 ↓ 0.0

Hash Join (cost=2,902,300.11..18,640,778.78 rows=1,394,494,762 width=223) (actual rows= loops=)

  • Hash Cond: ((ip_geo_user_counts.country)::text = (dist_user_cntry.country)::text)
5. 0.000 0.000 ↓ 0.0

Seq Scan on ip_geo_user_counts (cost=0.00..38,026.59 rows=697,659 width=8) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Hash (cost=2,895,303.28..2,895,303.28 rows=159,906 width=231) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Gather (cost=130,830.58..2,895,303.28 rows=159,906 width=231) (actual rows= loops=)

  • Workers Planned: 5
8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=129,830.58..2,878,312.68 rows=31,981 width=231) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Hash Join (cost=129,830.03..1,612,313.18 rows=213,211 width=321) (actual rows= loops=)

  • Hash Cond: (((_hyper_1141_53057_chunk.event -> 'geo_ip'::text) ->> 'country'::text) = (dist_user_cntry.country)::text)
10. 0.000 0.000 ↓ 0.0

Append (cost=0.00..1,480,700.36 rows=606,007 width=305) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on _hyper_1141_53057_chunk (cost=0.00..112,943.89 rows=69,356 width=305) (actual rows= loops=)

  • Filter: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
12. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on _hyper_1141_53058_chunk (cost=0.00..150,801.90 rows=79,643 width=286) (actual rows= loops=)

  • Filter: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
13. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on _hyper_1141_53059_chunk (cost=0.00..129,463.25 rows=70,083 width=328) (actual rows= loops=)

  • Filter: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
14. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on _hyper_1141_53069_chunk (cost=0.00..86,599.15 rows=41,277 width=284) (actual rows= loops=)

  • Filter: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
15. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53070_chunk (cost=54.01..3,177.29 rows=1,698 width=64) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
16. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53070_chunk_activityservice (cost=0.00..53.29 rows=2,887 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
17. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53071_chunk (cost=25.75..1,056.73 rows=555 width=64) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
18. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53071_chunk_activityservice (cost=0.00..25.52 rows=944 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
19. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on _hyper_1141_53072_chunk (cost=0.00..1.01 rows=1 width=64) (actual rows= loops=)

  • Filter: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
20. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53073_chunk (cost=27.04..932.73 rows=486 width=64) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
21. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53073_chunk_activityservice (cost=0.00..26.83 rows=827 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
22. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53074_chunk (cost=29.89..1,024.35 rows=535 width=64) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
23. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53074_chunk_activityservice (cost=0.00..29.66 rows=909 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
24. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53075_chunk (cost=18.76..987.21 rows=526 width=64) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
25. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53075_chunk_activityservice (cost=0.00..18.54 rows=894 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
26. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53076_chunk (cost=39.29..2,331.38 rows=1,248 width=64) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
27. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53076_chunk_activityservice (cost=0.00..38.76 rows=2,121 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
28. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53077_chunk (cost=26.35..834.63 rows=434 width=64) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
29. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53077_chunk_activityservice (cost=0.00..26.17 rows=738 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
30. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53078_chunk (cost=17.59..522.33 rows=271 width=64) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
31. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53078_chunk_activityservice (cost=0.00..17.48 rows=460 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
32. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53079_chunk (cost=32.07..1,027.10 rows=534 width=64) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
33. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53079_chunk_activityservice (cost=0.00..31.85 rows=908 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
34. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53080_chunk (cost=32.03..1,019.46 rows=530 width=64) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
35. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53080_chunk_activityservice (cost=0.00..31.80 rows=901 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
36. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53081_chunk (cost=2,292.94..68,791.14 rows=23,268 width=356) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
37. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53081_chunk_activityservice (cost=0.00..2,269.68 rows=93,071 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
38. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53082_chunk (cost=1,563.67..46,778.13 rows=15,569 width=145) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
39. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53082_chunk_activityservice (cost=0.00..1,548.10 rows=62,277 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
40. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53083_chunk (cost=1,055.82..31,762.93 rows=10,542 width=129) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
41. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53083_chunk_activityservice (cost=0.00..1,045.28 rows=42,166 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
42. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53084_chunk (cost=1,578.66..47,547.66 rows=16,017 width=168) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
43. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53084_chunk_activityservice (cost=0.00..1,562.64 rows=64,067 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
44. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53085_chunk (cost=2,286.34..68,334.48 rows=22,913 width=157) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
45. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53085_chunk_activityservice (cost=0.00..2,263.43 rows=91,652 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
46. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53086_chunk (cost=2,314.60..69,156.22 rows=23,434 width=235) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
47. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53086_chunk_activityservice (cost=0.00..2,291.17 rows=93,738 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
48. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53087_chunk (cost=1,549.48..46,530.15 rows=15,892 width=258) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
49. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53087_chunk_activityservice (cost=0.00..1,533.59 rows=63,569 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
50. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53088_chunk (cost=2,318.36..71,645.24 rows=24,833 width=210) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
51. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53088_chunk_activityservice (cost=0.00..2,293.53 rows=99,332 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
52. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53089_chunk (cost=2,394.25..73,017.36 rows=25,081 width=354) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
53. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53089_chunk_activityservice (cost=0.00..2,369.16 rows=100,323 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
54. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53090_chunk (cost=2,129.17..65,287.47 rows=22,740 width=368) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
55. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53090_chunk_activityservice (cost=0.00..2,106.43 rows=90,960 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
56. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53091_chunk (cost=1,720.50..52,158.46 rows=17,860 width=391) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
57. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53091_chunk_activityservice (cost=0.00..1,702.63 rows=71,441 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
58. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53092_chunk (cost=1,049.19..31,726.77 rows=10,860 width=502) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
59. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53092_chunk_activityservice (cost=0.00..1,038.33 rows=43,441 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
60. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53093_chunk (cost=1,629.32..48,772.48 rows=16,480 width=432) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
61. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53093_chunk_activityservice (cost=0.00..1,612.84 rows=65,921 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
62. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53094_chunk (cost=2,051.62..63,891.76 rows=22,651 width=381) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
63. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53094_chunk_activityservice (cost=0.00..2,028.97 rows=90,604 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
64. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53095_chunk (cost=2,121.16..65,880.46 rows=23,191 width=381) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
65. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53095_chunk_activityservice (cost=0.00..2,097.97 rows=92,765 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
66. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53096_chunk (cost=2,228.32..68,147.39 rows=23,490 width=381) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
67. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53096_chunk_activityservice (cost=0.00..2,204.84 rows=93,960 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
68. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53097_chunk (cost=2,170.97..65,710.16 rows=22,456 width=372) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
69. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53097_chunk_activityservice (cost=0.00..2,148.52 rows=89,825 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
70. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on _hyper_1141_53991_chunk (cost=36.70..2,839.69 rows=1,553 width=64) (actual rows= loops=)

  • Recheck Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
71. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on _hyper_1141_53991_chunk_activityservice (cost=0.00..36.05 rows=2,640 width=0) (actual rows= loops=)

  • Index Cond: ((event ->> 'service'::text) = ANY ('{office-365,ms-graph}'::text[]))
72. 0.000 0.000 ↓ 0.0

Hash (cost=129,829.03..129,829.03 rows=80 width=16) (actual rows= loops=)

73. 0.000 0.000 ↓ 0.0

Subquery Scan on dist_user_cntry (cost=121,106.69..129,829.03 rows=80 width=16) (actual rows= loops=)

74. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=121,106.69..129,828.23 rows=80 width=48) (actual rows= loops=)

  • Group Key: ip_geo_user_counts_1.country
75. 0.000 0.000 ↓ 0.0

Sort (cost=121,106.69..122,850.84 rows=697,659 width=58) (actual rows= loops=)

  • Sort Key: ip_geo_user_counts_1.country
76. 0.000 0.000 ↓ 0.0

Seq Scan on ip_geo_user_counts ip_geo_user_counts_1 (cost=0.00..38,026.59 rows=697,659 width=58) (actual rows= loops=)

77. 0.000 0.000 ↓ 0.0

Index Scan using entity_pkey on entity (cost=0.55..5.93 rows=1 width=45) (actual rows= loops=)

  • Index Cond: ((id)::text = ANY (_hyper_1141_53057_chunk.targets))
  • Filter: (((obj -> 'refs'::text) ->> 'name'::text) = ANY ('{""Microsoft Exchange Online Remote PowerShell"",""Azure Active Directory PowerShell"",""Skype For Business Powershell Server Application""}'::text[]))
78. 0.000 0.000 ↓ 0.0

Hash (cost=42,966.34..42,966.34 rows=64,509 width=48) (actual rows= loops=)

79. 0.000 0.000 ↓ 0.0

HashAggregate (cost=41,514.88..42,321.25 rows=64,509 width=48) (actual rows= loops=)

  • Group Key: ip_geo_user_counts_2.ip_address
80. 0.000 0.000 ↓ 0.0

Seq Scan on ip_geo_user_counts ip_geo_user_counts_2 (cost=0.00..38,026.59 rows=697,659 width=24) (actual rows= loops=)