ExaSnapper 0.7 beta download and the hacking session videos

Thank you for attending the Exadata Snapper (ExaSnapper) hacking session!

I have split the recording of this session into 3 pieces and uploaded to enkitec.tv. The ExaSnapper beta that I demoed is also available now in my blog. See the links below.

For quick reference, here’s the syntax of running ExaSnapper – there are two modes, one is the before/after capture (think Tom Kyte’s runstats, but for exadata metrics) and the other is more like a DBA-monitoring mode, where you can just measure a few seconds worth of a long-running query runtime and get the IO and efficiency figures from there.

Here’s an excerpt from the install script documentation section:

-- Usage:       Take a snapshot of a running session (use QC SID if PX):
--                a) Monitor a running query - "DBA mode" 
--                   SELECT * FROM TABLE(exasnap.display_sid(, [snap_seconds], [detail_level]));
--                   The SID argument can be just a number (SID in local instance) or a remote SID with
--                   @instance after it (like '123@4')
--                   SELECT * FROM TABLE(exasnap.display_sid(123));
--                   SELECT * FROM TABLE(exasnap.display_sid('123@4', p_detail=>'%');
--                b) Take Before & After snapshots of a query execution - "Developer Mode"
--                   1) SELECT exasnap.begin_snap(123) FROM dual;
--                        or
--                      EXEC :begin_snap_id := exasnap.begin_snap(123);
--                   2) Run your query, wait until it finishes (or CTRL+C)
--                   3) SELECT exasnap.end_snap(123) FROM dual;
--                        or
--                      EXEC :end_snap_id := exasnap.end_snap(123);
--                   4) SELECT * FROM TABLE(exasnap.display_snap(:begin_snap_id, :end_snap_id, '%'));

One slide illustrating the idea of ExaSnapper:

Screen Shot 2013-02-22 at 4.41.36 PM

One  screenshot of ExaSnapper output:

Watch the videos to see more!

Screen Shot 2013-02-22 at 4.54.10 PM



ExaSnapper install script:

Also, if you’re serious about learning more about Exadata, from The Exadata Experts, check out our training pages , I’m running my Advanced Exadata Performance seminar the first time in May :-)

NB! I am running one more Advanced Oracle Troubleshooting training in 2018! You can attend the live online training and can download personal video recordings too. The Part 1 starts on 29th January 2018 - sign up here!

This entry was posted in Exadata, Oracle. Bookmark the permalink.

3 Responses to ExaSnapper 0.7 beta download and the hacking session videos

  1. GregG says:

    Thanks for another great tool Tanel,
    Forgive me my ignorance but could You tell if direct path reads/writes temp (sort related/aggregation) related are offloaded to storage cell? I really doubt that.

    • Tanel Poder says:

      No, direct path reads/writes for workarea spilling to temp are not offloaded (however it’s worth noting that smart scans can be done on GTTs too).

      As far as query execution goes, the only thing that can get offloaded is the *data retrieval* from the segment blocks. In other words the TABLE ACCESS STORAGE FULL row source (and a few similar ones against different segment types). Any sorting, hashing, grouping, joining etc does not get offloaded. When hash joins “get offloaded” thanks to bloom filter pushing to storage cells, it’s not really the joining operation that gets offloaded, but the *data retrieval* from the probed table can filter even more rows out in the cell, thanks to the bloom filter.

      If your question was prompted thanks to the slide I posted here – this slide is not only about offloading and smart scans. It’s about the *total amount of IO* your session is doing for different reasons – and ExaSnapper allows you to break down what consumed the most IO.

  2. GregG says:

    Thanks, got that.

Leave a Reply

Your email address will not be published. Required fields are marked *