How to read query profile generated by PROFILE

Can anyone point to detailed description on how to read and make sense of query profile generated by PROFILE?

  • Sometimes there are gaps between parent and children operator that can’t be explained in the profile.

  • Table scan exec time almost same as network time of repartition or broadcast steps of subsequent HashJoin

  • gives Access Denied error. How to get access?

One thing that helps is to use visual explain in studio:

Thanks. Visual Explain does help but there are still questions - e.g. total time reported of all the operators is much smaller than the actual wall clock time of the query.
The blog is about how to organize and present profiled event visually, not about the how to explain the profile numbers, especially in complex cases.

Can you share an example profile with us?