<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'Database Administration', 'SQL Server 2008 R2', and 'Extended Events'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=Database+Administration,SQL+Server+2008+R2,Extended+Events&amp;orTags=0</link><description>Search results matching tags 'Database Administration', 'SQL Server 2008 R2', and 'Extended Events'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Parsing the sqlserver.sql_text Action in Extended Events by Offsets</title><link>http://sqlblog.com/blogs/jonathan_kehayias/archive/2011/01/30/parsing-the-sqlserver-sql-text-action-in-extended-events-by-offsets.aspx</link><pubDate>Mon, 31 Jan 2011 02:05:43 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:33039</guid><dc:creator>jmkehayias</dc:creator><description>&lt;p&gt;A couple of weeks back I received an email from a member of the community who was reading the XEvent a Day blog series and had a couple of interesting questions about Extended Events.&amp;#160; This person had created an Event Session that captured the sqlserver.sql_statement_completed and sqlserver.sql_statement_starting Events and wanted to know how to do a correlation between the related Events so that the offset information from the starting Event could be used to find the statement of the completed Event to know the specific statement and its reads, cpu and write information from the sqlserver.sql_statement_completed Event.&amp;#160; Confused yet?&amp;#160; Since it doesn’t really read well what the intent was, lets look at the columns that are output by both of these Events, and it will make more sense.&amp;#160; I am going to break this post into two sections, SQL Server 2008 and SQL Server Denali, because there are significant differences between the two with regard to Extended Events and specifically these two events.&lt;/p&gt;  &lt;h2&gt;SQL Server 2008&lt;/h2&gt;  &lt;p&gt;In SQL Server 2008, the sqlserver.sql_statement_starting Event has the following output columns:&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;select &lt;/span&gt;name&lt;span style="color:gray;"&gt;, &lt;/span&gt;column_id&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:magenta;"&gt;type_name
&lt;/span&gt;&lt;span style="color:blue;"&gt;from &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_object_columns
&lt;/span&gt;&lt;span style="color:blue;"&gt;where &lt;/span&gt;&lt;span style="color:magenta;"&gt;object_name &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'sql_statement_starting'
  &lt;/span&gt;&lt;span style="color:gray;"&gt;and &lt;/span&gt;column_type &lt;span style="color:gray;"&gt;&amp;lt;&amp;gt; &lt;/span&gt;&lt;span style="color:red;"&gt;'readonly'&lt;/span&gt;&lt;/pre&gt;
  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/jonathan_kehayias/image3_40F188BD.png" target="_blank"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://sqlblog.com/blogs/jonathan_kehayias/image3_thumb_4A2DC3FE.png" width="311" height="161" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The sqlserver.sql_statement_completed Event has the following output columns:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;select &lt;/span&gt;name&lt;span style="color:gray;"&gt;, &lt;/span&gt;column_id&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:magenta;"&gt;type_name
&lt;/span&gt;&lt;span style="color:blue;"&gt;from &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_object_columns
&lt;/span&gt;&lt;span style="color:blue;"&gt;where &lt;/span&gt;&lt;span style="color:magenta;"&gt;object_name &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'sql_statement_completed'
  &lt;/span&gt;&lt;span style="color:gray;"&gt;and &lt;/span&gt;column_type &lt;span style="color:gray;"&gt;&amp;lt;&amp;gt; &lt;/span&gt;&lt;span style="color:red;"&gt;'readonly'&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/jonathan_kehayias/image_51B9336B.png" target="_blank"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://sqlblog.com/blogs/jonathan_kehayias/image_thumb_125B7FDB.png" width="282" height="158" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;&lt;/blockquote&gt;

&lt;p&gt;The intent as I understood it was to use the offset and offset_end from the sqlserver.sql_statement_starting Event with the information in the sqlserver.sql_statement_completed Event and I could only assume the sqlserver.sql_text Action.&amp;#160; When I got the email I replied back to use the sqlserver.tsql_stack Action to get the offset information with the sqlserver.sql_statement_completed Event and use that to parse the statement from the sqlserver.sql_text Action.&amp;#160; I didn’t have time to play with it at the moment, but I promised to write a blog post showing how to do it later that day.&amp;#160; &lt;/p&gt;

&lt;p&gt;When I got a free minute where I could write a demo to blog about for this I ran into some problems with the results that I got from parsing the sql_text data that was returned by Extended Events.&amp;#160; To show this, lets create an Event Session and run a test multi-statement batch so that we have to some sample Event Data to do processing on.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;IF &lt;/span&gt;&lt;span style="color:gray;"&gt;EXISTS (&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;1 &lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_sessions &lt;/span&gt;&lt;span style="color:blue;"&gt;WHERE &lt;/span&gt;name &lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'SQLStmtEvents'&lt;/span&gt;&lt;span style="color:gray;"&gt;)
    &lt;/span&gt;&lt;span style="color:blue;"&gt;DROP EVENT SESSION &lt;/span&gt;SQLStmtEvents &lt;span style="color:blue;"&gt;ON SERVER
GO
&lt;/span&gt;&lt;span style="color:green;"&gt;-- Create our Event Session for current Session_ID
&lt;/span&gt;&lt;span style="color:blue;"&gt;DECLARE &lt;/span&gt;@SqlCmd &lt;span style="color:blue;"&gt;NVARCHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;MAX&lt;/span&gt;&lt;span style="color:gray;"&gt;) = &lt;/span&gt;&lt;span style="color:red;"&gt;N'
CREATE EVENT SESSION SQLStmtEvents
ON SERVER
ADD EVENT sqlserver.sql_statement_completed
(    ACTION (sqlserver.sql_text, sqlserver.tsql_stack)
    WHERE (sqlserver.session_id = '&lt;/span&gt;&lt;span style="color:gray;"&gt;+&lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;@@SPID &lt;/span&gt;&lt;span style="color:blue;"&gt;AS NVARCHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;4&lt;span style="color:gray;"&gt;))+&lt;/span&gt;&lt;span style="color:red;"&gt;')    ),
ADD EVENT sqlserver.sql_statement_starting
(    ACTION (sqlserver.sql_text, sqlserver.tsql_stack)
    WHERE (sqlserver.session_id = '&lt;/span&gt;&lt;span style="color:gray;"&gt;+&lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;@@SPID &lt;/span&gt;&lt;span style="color:blue;"&gt;AS NVARCHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;4&lt;span style="color:gray;"&gt;))+&lt;/span&gt;&lt;span style="color:red;"&gt;')    )
ADD target package0.ring_buffer
WITH (MAX_DISPATCH_LATENCY=5SECONDS, TRACK_CAUSALITY=ON)'&lt;/span&gt;&lt;span style="color:gray;"&gt;;
&lt;/span&gt;&lt;span style="color:blue;"&gt;EXEC&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;@SqlCmd&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;span style="color:blue;"&gt;GO
&lt;/span&gt;&lt;span style="color:green;"&gt;-- Start the Event Session
&lt;/span&gt;&lt;span style="color:blue;"&gt;ALTER EVENT SESSION &lt;/span&gt;SQLStmtEvents
&lt;span style="color:blue;"&gt;ON SERVER
STATE&lt;/span&gt;&lt;span style="color:gray;"&gt;=&lt;/span&gt;START&lt;span style="color:gray;"&gt;;
&lt;/span&gt;&lt;span style="color:blue;"&gt;GO
&lt;/span&gt;&lt;span style="color:green;"&gt;-- Run a multi-statement Batch
&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color:gray;"&gt;* 
&lt;/span&gt;&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;objects

&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color:gray;"&gt;* 
&lt;/span&gt;&lt;span style="color:blue;"&gt;FROM master&lt;/span&gt;&lt;span style="color:gray;"&gt;..&lt;/span&gt;spt_values
&lt;span style="color:blue;"&gt;WHERE type &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;N'P'

&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color:gray;"&gt;*
&lt;/span&gt;&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:green;"&gt;INFORMATION_SCHEMA&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;TABLES
&lt;/span&gt;&lt;span style="color:blue;"&gt;GO
&lt;/span&gt;&lt;/pre&gt;
  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;With the Event Session created I did quick check to validate that the offset information held in the tsql_stack matched the offset information returned by the sql_statement_starting Event.&amp;#160; The tsql_stack returns an XML document that is similar to the following:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;frame &lt;/span&gt;&lt;span style="color:red;"&gt;level&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;handle&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;0x020000004765D81E643DBDA1E90A8F634B78C042FF805374&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;line&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;2&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;offsetStart&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;64&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;offsetEnd&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;124&lt;/span&gt;&amp;quot; &lt;span style="color:blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;After validating the offsets matched, I wrote out the parser for the Event Data and sql_text as follows:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:green;"&gt;-- Extract the Event information from the Event Session 
&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT 
    &lt;/span&gt;event_name&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:blue;"&gt;timestamp&lt;/span&gt;&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;cpu&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;duration&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;reads&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;writes&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:blue;"&gt;state&lt;/span&gt;&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:magenta;"&gt;ISNULL&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;offset&lt;span style="color:gray;"&gt;, &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetStart)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;as &lt;/span&gt;offset&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;&lt;span style="color:magenta;"&gt;ISNULL&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;offset_end&lt;span style="color:gray;"&gt;, &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetEnd)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;as &lt;/span&gt;offset_end&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;&lt;span style="color:magenta;"&gt;ISNULL&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;nest_level&lt;span style="color:gray;"&gt;, &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@level)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;as &lt;/span&gt;nest_level&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;sql_text&lt;span style="color:gray;"&gt;,    
                (&lt;/span&gt;&lt;span style="color:magenta;"&gt;ISNULL&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;offset&lt;span style="color:gray;"&gt;, &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetStart)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;))/&lt;/span&gt;2&lt;span style="color:gray;"&gt;)+&lt;/span&gt;1&lt;span style="color:gray;"&gt;, 
                ((&lt;/span&gt;&lt;span style="color:blue;"&gt;CASE &lt;/span&gt;&lt;span style="color:magenta;"&gt;ISNULL&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;offset_end&lt;span style="color:gray;"&gt;, &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetEnd)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) 
                    &lt;/span&gt;&lt;span style="color:blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color:gray;"&gt;-&lt;/span&gt;1 &lt;span style="color:blue;"&gt;THEN &lt;/span&gt;&lt;span style="color:magenta;"&gt;DATALENGTH&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;sql_text&lt;span style="color:gray;"&gt;) 
                    &lt;/span&gt;&lt;span style="color:blue;"&gt;ELSE &lt;/span&gt;&lt;span style="color:magenta;"&gt;ISNULL&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;offset_end&lt;span style="color:gray;"&gt;, &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetEnd)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) 
                  &lt;/span&gt;&lt;span style="color:blue;"&gt;END &lt;/span&gt;&lt;span style="color:gray;"&gt;- &lt;/span&gt;&lt;span style="color:magenta;"&gt;ISNULL&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;offset&lt;span style="color:gray;"&gt;, &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetStart)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)))/&lt;/span&gt;2&lt;span style="color:gray;"&gt;) + &lt;/span&gt;1&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;statement_text_Xevents&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;sql_text&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;event_sequence&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;activity_id
&lt;span style="color:blue;"&gt;FROM
&lt;/span&gt;&lt;span style="color:gray;"&gt;(
    &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT 
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/@name)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varchar(50)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;event_name&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;DATEADD&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;hh&lt;span style="color:gray;"&gt;, 
            &lt;/span&gt;&lt;span style="color:magenta;"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;hh&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:magenta;"&gt;GETUTCDATE&lt;/span&gt;&lt;span style="color:gray;"&gt;(), &lt;/span&gt;&lt;span style="color:magenta;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color:gray;"&gt;), 
            &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/@timestamp)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'datetime2'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[timestamp]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;COALESCE&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;database_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;), 
            &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;database_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;database_id&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;session_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[session_id]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;cpu&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[cpu]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;duration&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'bigint'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[duration]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;reads&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'bigint'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[reads]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;writes&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'bigint'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[writes]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;state&amp;quot;]/text)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'nvarchar(4000)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[state]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;offset&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[offset]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;offset_end&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[offset_end]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;nest_level&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[nest_level]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;tsql_stack&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'nvarchar(4000)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS XML&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[tsql_stack]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;sql_text&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'nvarchar(max)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[sql_text]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;source_database_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[source_database_id]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;object_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[object_id]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;object_type&amp;quot;]/text)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[object_type]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;attach_activity_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varchar(50)'&lt;/span&gt;&lt;span style="color:gray;"&gt;), &lt;/span&gt;1&lt;span style="color:gray;"&gt;, &lt;/span&gt;36&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS uniqueidentifier&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;as &lt;/span&gt;activity_id&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;attach_activity_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varchar(50)'&lt;/span&gt;&lt;span style="color:gray;"&gt;), &lt;/span&gt;38&lt;span style="color:gray;"&gt;, &lt;/span&gt;10&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS int&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;as &lt;/span&gt;event_sequence
    &lt;span style="color:blue;"&gt;FROM 
    &lt;/span&gt;&lt;span style="color:gray;"&gt;(   &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;XEvent&lt;span style="color:gray;"&gt;.&lt;/span&gt;query&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'.'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;event_data 
        &lt;span style="color:blue;"&gt;FROM 
        &lt;/span&gt;&lt;span style="color:gray;"&gt;(    &lt;/span&gt;&lt;span style="color:green;"&gt;-- Cast the target_data to XML 
            &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;target_data &lt;span style="color:blue;"&gt;AS XML&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;TargetData 
            &lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_session_targets &lt;/span&gt;st 
            &lt;span style="color:gray;"&gt;JOIN &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_sessions &lt;/span&gt;s 
                &lt;span style="color:blue;"&gt;ON &lt;/span&gt;s&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;address &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;st&lt;span style="color:gray;"&gt;.&lt;/span&gt;event_session_address 
            &lt;span style="color:blue;"&gt;WHERE &lt;/span&gt;name &lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'SQLStmtEvents' 
              &lt;/span&gt;&lt;span style="color:gray;"&gt;AND &lt;/span&gt;target_name &lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'ring_buffer'
        &lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;Data 
        &lt;span style="color:green;"&gt;-- Split out the Event Nodes 
        &lt;/span&gt;&lt;span style="color:gray;"&gt;CROSS APPLY &lt;/span&gt;TargetData&lt;span style="color:gray;"&gt;.&lt;/span&gt;nodes &lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'RingBufferTarget/event'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;XEventData &lt;span style="color:gray;"&gt;(&lt;/span&gt;XEvent&lt;span style="color:gray;"&gt;)   
    ) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;tab &lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;)
) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;results&lt;/pre&gt;
  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;If you run these two examples, you will notice immediately that something is not right with the statement_text_XEvents data, it didn’t parse out correctly.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://sqlblog.com/blogs/jonathan_kehayias/image_4BDE8FD2.png" target="_blank"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://sqlblog.com/blogs/jonathan_kehayias/image_thumb_2C9BE8FF.png" width="644" height="91" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;I also validated that this same behavior exists in SQL Server Denali CTP1.&amp;#160; To look at this further and determine where exactly the problem might be, I used the plan_handle from the tsql_stack to get the sql text from sys.dm_exec_sql_text() and then offset parse that in the same manner to validate that the offset information is not the problem.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;SELECT 
    &lt;/span&gt;event_name&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetStart)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;offset&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetEnd)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;offset_end&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@level)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;nest_level&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;sql_text&lt;span style="color:gray;"&gt;,    
                (&lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetStart)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)/&lt;/span&gt;2&lt;span style="color:gray;"&gt;)+&lt;/span&gt;1&lt;span style="color:gray;"&gt;, 
                ((&lt;/span&gt;&lt;span style="color:blue;"&gt;CASE &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetEnd)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)
                    &lt;/span&gt;&lt;span style="color:blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color:gray;"&gt;-&lt;/span&gt;1 &lt;span style="color:blue;"&gt;THEN &lt;/span&gt;&lt;span style="color:magenta;"&gt;DATALENGTH&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;sql_text&lt;span style="color:gray;"&gt;) 
                    &lt;/span&gt;&lt;span style="color:blue;"&gt;ELSE &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetEnd)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)
                  &lt;/span&gt;&lt;span style="color:blue;"&gt;END &lt;/span&gt;&lt;span style="color:gray;"&gt;- &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetStart)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;))/&lt;/span&gt;2&lt;span style="color:gray;"&gt;) + &lt;/span&gt;1&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;statement_text_Xevents&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;st&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;text&lt;/span&gt;&lt;span style="color:gray;"&gt;, (&lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(/frame/@offsetStart)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)/&lt;/span&gt;2&lt;span style="color:gray;"&gt;)+&lt;/span&gt;1&lt;span style="color:gray;"&gt;, 
        ((&lt;/span&gt;&lt;span style="color:blue;"&gt;CASE &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(/frame/@offsetEnd)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)
          &lt;/span&gt;&lt;span style="color:blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color:gray;"&gt;-&lt;/span&gt;1 &lt;span style="color:blue;"&gt;THEN &lt;/span&gt;&lt;span style="color:magenta;"&gt;DATALENGTH&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;st&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;text&lt;/span&gt;&lt;span style="color:gray;"&gt;)
         &lt;/span&gt;&lt;span style="color:blue;"&gt;ELSE &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(/frame/@offsetEnd)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)
         &lt;/span&gt;&lt;span style="color:blue;"&gt;END &lt;/span&gt;&lt;span style="color:gray;"&gt;- &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(/frame/@offsetStart)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;))/&lt;/span&gt;2&lt;span style="color:gray;"&gt;) + &lt;/span&gt;1&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;statement_text_from_cache&lt;span style="color:gray;"&gt;, 
         &lt;/span&gt;sql_text
&lt;span style="color:blue;"&gt;FROM
&lt;/span&gt;&lt;span style="color:gray;"&gt;(
    &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT 
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/@name)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varchar(50)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;event_name&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;tsql_stack&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'nvarchar(4000)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS XML&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[tsql_stack]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;sql_text&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'nvarchar(max)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[sql_text]
    &lt;span style="color:blue;"&gt;FROM 
    &lt;/span&gt;&lt;span style="color:gray;"&gt;(   &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;XEvent&lt;span style="color:gray;"&gt;.&lt;/span&gt;query&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'.'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;event_data 
        &lt;span style="color:blue;"&gt;FROM 
        &lt;/span&gt;&lt;span style="color:gray;"&gt;(    &lt;/span&gt;&lt;span style="color:green;"&gt;-- Cast the target_data to XML 
            &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;target_data &lt;span style="color:blue;"&gt;AS XML&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;TargetData 
            &lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_session_targets &lt;/span&gt;st 
            &lt;span style="color:gray;"&gt;JOIN &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_sessions &lt;/span&gt;s 
                &lt;span style="color:blue;"&gt;ON &lt;/span&gt;s&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;address &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;st&lt;span style="color:gray;"&gt;.&lt;/span&gt;event_session_address 
            &lt;span style="color:blue;"&gt;WHERE &lt;/span&gt;name &lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'SQLStmtEvents' 
              &lt;/span&gt;&lt;span style="color:gray;"&gt;AND &lt;/span&gt;target_name &lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'ring_buffer'
        &lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;Data 
        &lt;span style="color:green;"&gt;-- Split out the Event Nodes 
        &lt;/span&gt;&lt;span style="color:gray;"&gt;CROSS APPLY &lt;/span&gt;TargetData&lt;span style="color:gray;"&gt;.&lt;/span&gt;nodes &lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'RingBufferTarget/event'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;XEventData &lt;span style="color:gray;"&gt;(&lt;/span&gt;XEvent&lt;span style="color:gray;"&gt;)   
    ) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;tab &lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;)
) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;results
&lt;span style="color:gray;"&gt;CROSS APPLY &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_exec_sql_text&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'xs:hexBinary(substring((/frame/@handle)[1], 3))'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varbinary(max)'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;st&lt;/pre&gt;

  &lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/jonathan_kehayias/image_7BE8E153.png" target="_blank"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://sqlblog.com/blogs/jonathan_kehayias/image_thumb_2EB8E7C8.png" width="644" height="94" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The information from the cache is correct, so there has to be something different about the sql_text Action output.&amp;#160; To figure out what that was, I changed my script slightly so that it would parse out each character in the text from cache and the sql_text Action to see what was different and where:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:green;"&gt;-- Extract the Event information from the Event Session 
&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT 
    &lt;/span&gt;sv&lt;span style="color:gray;"&gt;.&lt;/span&gt;number &lt;span style="color:blue;"&gt;AS &lt;/span&gt;Position&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:magenta;"&gt;ASCII&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;text&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;sv&lt;span style="color:gray;"&gt;.&lt;/span&gt;number&lt;span style="color:gray;"&gt;+&lt;/span&gt;1&lt;span style="color:gray;"&gt;, &lt;/span&gt;1&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;cache_text&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;&lt;span style="color:magenta;"&gt;ASCII&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;sql_text&lt;span style="color:gray;"&gt;, &lt;/span&gt;sv&lt;span style="color:gray;"&gt;.&lt;/span&gt;number&lt;span style="color:gray;"&gt;+&lt;/span&gt;1&lt;span style="color:gray;"&gt;, &lt;/span&gt;1&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;sql_text
&lt;span style="color:blue;"&gt;FROM
&lt;/span&gt;&lt;span style="color:gray;"&gt;(
    &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT 
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;tsql_stack&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'nvarchar(4000)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS XML&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[tsql_stack]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;sql_text&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'nvarchar(max)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[sql_text]
    &lt;span style="color:blue;"&gt;FROM 
    &lt;/span&gt;&lt;span style="color:gray;"&gt;(   &lt;/span&gt;&lt;span style="color:green;"&gt;-- Get only one of the events this time
        &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT TOP &lt;/span&gt;1 XEvent&lt;span style="color:gray;"&gt;.&lt;/span&gt;query&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'.'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;event_data 
        &lt;span style="color:blue;"&gt;FROM 
        &lt;/span&gt;&lt;span style="color:gray;"&gt;(    &lt;/span&gt;&lt;span style="color:green;"&gt;-- Cast the target_data to XML 
            &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;target_data &lt;span style="color:blue;"&gt;AS XML&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;TargetData 
            &lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_session_targets &lt;/span&gt;st 
            &lt;span style="color:gray;"&gt;JOIN &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_sessions &lt;/span&gt;s 
                &lt;span style="color:blue;"&gt;ON &lt;/span&gt;s&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;address &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;st&lt;span style="color:gray;"&gt;.&lt;/span&gt;event_session_address 
            &lt;span style="color:blue;"&gt;WHERE &lt;/span&gt;name &lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'SQLStmtEvents' 
              &lt;/span&gt;&lt;span style="color:gray;"&gt;AND &lt;/span&gt;target_name &lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'ring_buffer'
        &lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;Data 
        &lt;span style="color:green;"&gt;-- Split out the Event Nodes 
        &lt;/span&gt;&lt;span style="color:gray;"&gt;CROSS APPLY &lt;/span&gt;TargetData&lt;span style="color:gray;"&gt;.&lt;/span&gt;nodes &lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'RingBufferTarget/event'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;XEventData &lt;span style="color:gray;"&gt;(&lt;/span&gt;XEvent&lt;span style="color:gray;"&gt;)   
    ) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;tab &lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;)
) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;results
&lt;span style="color:gray;"&gt;CROSS APPLY &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_exec_sql_text&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'xs:hexBinary(substring((/frame/@handle)[1], 3))'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varbinary(max)'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;st
&lt;span style="color:gray;"&gt;CROSS JOIN &lt;/span&gt;&lt;span style="color:blue;"&gt;master&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;spt_values &lt;span style="color:blue;"&gt;AS &lt;/span&gt;sv
&lt;span style="color:blue;"&gt;WHERE &lt;/span&gt;sv&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;type &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'P'
  &lt;/span&gt;&lt;span style="color:gray;"&gt;AND &lt;/span&gt;sv&lt;span style="color:gray;"&gt;.&lt;/span&gt;number &lt;span style="color:gray;"&gt;&amp;lt;= &lt;/span&gt;&lt;span style="color:magenta;"&gt;DATALENGTH&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:blue;"&gt;text&lt;/span&gt;&lt;span style="color:gray;"&gt;)
&lt;/span&gt;&lt;/pre&gt;
  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/jonathan_kehayias/image_222B3AAC.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://sqlblog.com/blogs/jonathan_kehayias/image_thumb_29B6AA19.png" width="213" height="238" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What I found was that the carriage returns are missing from the sql_text Action in Extended Events.&amp;#160; We can work around that by doing a REPLACE(sql_text, CHAR(10), CHAR(13)+CHAR(10)) operation to return the carriage returns to the output.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:green;"&gt;-- Extract the Event information from the Event Session 
&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT 
    &lt;/span&gt;event_name&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:blue;"&gt;timestamp&lt;/span&gt;&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;cpu&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;duration&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;reads&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;writes&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:blue;"&gt;state&lt;/span&gt;&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;sql_text&lt;span style="color:gray;"&gt;,    
                (&lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetStart)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)/&lt;/span&gt;2&lt;span style="color:gray;"&gt;)+&lt;/span&gt;1&lt;span style="color:gray;"&gt;, 
                ((&lt;/span&gt;&lt;span style="color:blue;"&gt;CASE &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetEnd)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)
                    &lt;/span&gt;&lt;span style="color:blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color:gray;"&gt;-&lt;/span&gt;1 &lt;span style="color:blue;"&gt;THEN &lt;/span&gt;&lt;span style="color:magenta;"&gt;DATALENGTH&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;sql_text&lt;span style="color:gray;"&gt;) 
                    &lt;/span&gt;&lt;span style="color:blue;"&gt;ELSE &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetEnd)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) 
                  &lt;/span&gt;&lt;span style="color:blue;"&gt;END &lt;/span&gt;&lt;span style="color:gray;"&gt;- &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(frame/@offsetStart)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;))/&lt;/span&gt;2&lt;span style="color:gray;"&gt;) + &lt;/span&gt;1&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;statement_text_Xevents&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;st&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;text&lt;/span&gt;&lt;span style="color:gray;"&gt;, (&lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(/frame/@offsetStart)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)/&lt;/span&gt;2&lt;span style="color:gray;"&gt;)+&lt;/span&gt;1&lt;span style="color:gray;"&gt;, 
        ((&lt;/span&gt;&lt;span style="color:blue;"&gt;CASE &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(/frame/@offsetEnd)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)
          &lt;/span&gt;&lt;span style="color:blue;"&gt;WHEN &lt;/span&gt;&lt;span style="color:gray;"&gt;-&lt;/span&gt;1 &lt;span style="color:blue;"&gt;THEN &lt;/span&gt;&lt;span style="color:magenta;"&gt;DATALENGTH&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;st&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;text&lt;/span&gt;&lt;span style="color:gray;"&gt;)
         &lt;/span&gt;&lt;span style="color:blue;"&gt;ELSE &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(/frame/@offsetEnd)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)
         &lt;/span&gt;&lt;span style="color:blue;"&gt;END &lt;/span&gt;&lt;span style="color:gray;"&gt;- &lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(/frame/@offsetStart)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;))/&lt;/span&gt;2&lt;span style="color:gray;"&gt;) + &lt;/span&gt;1&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;statement_text_from_cache&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;sql_text&lt;span style="color:gray;"&gt;,    
    &lt;/span&gt;event_sequence&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;activity_id
&lt;span style="color:blue;"&gt;FROM
&lt;/span&gt;&lt;span style="color:gray;"&gt;(
    &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT 
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/@name)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varchar(50)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;event_name&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;DATEADD&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;hh&lt;span style="color:gray;"&gt;, 
            &lt;/span&gt;&lt;span style="color:magenta;"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;hh&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:magenta;"&gt;GETUTCDATE&lt;/span&gt;&lt;span style="color:gray;"&gt;(), &lt;/span&gt;&lt;span style="color:magenta;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color:gray;"&gt;), 
            &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/@timestamp)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'datetime2'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[timestamp]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;COALESCE&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;database_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;), 
            &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;database_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;database_id&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;session_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[session_id]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;cpu&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[cpu]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;duration&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'bigint'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[duration]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;reads&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'bigint'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[reads]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;writes&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'bigint'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[writes]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;state&amp;quot;]/text)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'nvarchar(4000)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[state]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;offset&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[offset]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;offset_end&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[offset_end]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;nest_level&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[nest_level]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;tsql_stack&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'nvarchar(4000)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS XML&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[tsql_stack]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;REPLACE&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;sql_text&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'nvarchar(max)'&lt;/span&gt;&lt;span style="color:gray;"&gt;), &lt;/span&gt;&lt;span style="color:blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;10&lt;span style="color:gray;"&gt;), &lt;/span&gt;&lt;span style="color:blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;13&lt;span style="color:gray;"&gt;)+&lt;/span&gt;&lt;span style="color:blue;"&gt;CHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;10&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[sql_text]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;source_database_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[source_database_id]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;object_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[object_id]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;object_type&amp;quot;]/text)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;[object_type]&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;attach_activity_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varchar(50)'&lt;/span&gt;&lt;span style="color:gray;"&gt;), &lt;/span&gt;1&lt;span style="color:gray;"&gt;, &lt;/span&gt;36&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS uniqueidentifier&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;as &lt;/span&gt;activity_id&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;attach_activity_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varchar(50)'&lt;/span&gt;&lt;span style="color:gray;"&gt;), &lt;/span&gt;38&lt;span style="color:gray;"&gt;, &lt;/span&gt;10&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS int&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;as &lt;/span&gt;event_sequence
    &lt;span style="color:blue;"&gt;FROM 
    &lt;/span&gt;&lt;span style="color:gray;"&gt;(   &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;XEvent&lt;span style="color:gray;"&gt;.&lt;/span&gt;query&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'.'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;event_data 
        &lt;span style="color:blue;"&gt;FROM 
        &lt;/span&gt;&lt;span style="color:gray;"&gt;(    &lt;/span&gt;&lt;span style="color:green;"&gt;-- Cast the target_data to XML 
            &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;target_data &lt;span style="color:blue;"&gt;AS XML&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;TargetData 
            &lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_session_targets &lt;/span&gt;st 
            &lt;span style="color:gray;"&gt;JOIN &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_sessions &lt;/span&gt;s 
                &lt;span style="color:blue;"&gt;ON &lt;/span&gt;s&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;address &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;st&lt;span style="color:gray;"&gt;.&lt;/span&gt;event_session_address 
            &lt;span style="color:blue;"&gt;WHERE &lt;/span&gt;name &lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'SQLStmtEvents' 
              &lt;/span&gt;&lt;span style="color:gray;"&gt;AND &lt;/span&gt;target_name &lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'ring_buffer'
        &lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;Data 
        &lt;span style="color:green;"&gt;-- Split out the Event Nodes 
        &lt;/span&gt;&lt;span style="color:gray;"&gt;CROSS APPLY &lt;/span&gt;TargetData&lt;span style="color:gray;"&gt;.&lt;/span&gt;nodes &lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'RingBufferTarget/event'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;XEventData &lt;span style="color:gray;"&gt;(&lt;/span&gt;XEvent&lt;span style="color:gray;"&gt;)   
    ) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;tab &lt;span style="color:gray;"&gt;(&lt;/span&gt;event_data&lt;span style="color:gray;"&gt;)
) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;results
&lt;span style="color:gray;"&gt;CROSS APPLY &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_exec_sql_text&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;tsql_stack&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'xs:hexBinary(substring((/frame/@handle)[1], 3))'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varbinary(max)'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;st&lt;/pre&gt;
  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/jonathan_kehayias/image_0354C6CE.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://sqlblog.com/blogs/jonathan_kehayias/image_thumb_24B46C6A.png" width="644" height="86" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I filed this as a bug on Connect titled &lt;a href="https://connect.microsoft.com/SQLServer/feedback/details/639811/extended-events-sqlserver-sql-text-action-is-not-offset-parseable?wa=wsignin1.0#" target="_blank"&gt;Extended Events sqlserver.sql_text Action is not Offset Parseable&lt;/a&gt; after trading a couple of emails with Mike Wachal about this, and he has already replied to the connect item stating that they are looking at the difference between the two operations in the engine.&amp;#160; &lt;/p&gt;

&lt;h2&gt;SQL Server Denali&lt;/h2&gt;

&lt;p&gt;I was hesitant to even bother filing this as a bug because in SQL Server Denali CTP1, none of this is necessary to collect the statement, since the statement exists as a customizable column on the Events. &lt;/p&gt;

&lt;p&gt;In Denali CTP1, the sql_statement_starting Event has the following columns:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;select &lt;/span&gt;&lt;span style="color:teal;"&gt;name&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:teal;"&gt;column_id&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:magenta;"&gt;type_name&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:teal;"&gt;column_type
&lt;/span&gt;&lt;span style="color:blue;"&gt;from &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_object_columns
&lt;/span&gt;&lt;span style="color:blue;"&gt;where &lt;/span&gt;&lt;span style="color:magenta;"&gt;object_name &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'sql_statement_starting'
  &lt;/span&gt;&lt;span style="color:gray;"&gt;and &lt;/span&gt;&lt;span style="color:teal;"&gt;column_type &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;&amp;gt; &lt;/span&gt;&lt;span style="color:red;"&gt;'readonly'
&lt;/span&gt;&lt;/pre&gt;
  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/jonathan_kehayias/image_5B059479.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://sqlblog.com/blogs/jonathan_kehayias/image_thumb_34A3B12E.png" width="415" height="144" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The sql_statement_completed Event has the following columns:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;select &lt;/span&gt;&lt;span style="color:teal;"&gt;name&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:teal;"&gt;column_id&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:magenta;"&gt;type_name&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:teal;"&gt;column_type
&lt;/span&gt;&lt;span style="color:blue;"&gt;from &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_object_columns
&lt;/span&gt;&lt;span style="color:blue;"&gt;where &lt;/span&gt;&lt;span style="color:magenta;"&gt;object_name &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'sql_statement_completed'
  &lt;/span&gt;&lt;span style="color:gray;"&gt;and &lt;/span&gt;&lt;span style="color:teal;"&gt;column_type &lt;/span&gt;&lt;span style="color:gray;"&gt;&amp;lt;&amp;gt; &lt;/span&gt;&lt;span style="color:red;"&gt;'readonly'
&lt;/span&gt;&lt;/pre&gt;
  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/jonathan_kehayias/image_273D9E28.png" target="_blank"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://sqlblog.com/blogs/jonathan_kehayias/image_thumb_15CD3D50.png" width="367" height="255" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you compare the columns output by the sql_statement_completed Event in Denali CTP1, you will notice that it has significantly more columns in its base column payload, as well as having the statement as a customizable column.&amp;#160; In Denali CTP1, the only thing necessary to get the specific TSQL statement that is executing is to turn collection of the customizable column statement on using the collect_statement column.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;IF &lt;/span&gt;&lt;span style="color:gray;"&gt;EXISTS (&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;1 &lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_sessions &lt;/span&gt;&lt;span style="color:blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color:teal;"&gt;name &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'SQLStmtEvents'&lt;/span&gt;&lt;span style="color:gray;"&gt;)
    &lt;/span&gt;&lt;span style="color:blue;"&gt;DROP EVENT SESSION &lt;/span&gt;&lt;span style="color:teal;"&gt;SQLStmtEvents &lt;/span&gt;&lt;span style="color:blue;"&gt;ON SERVER
GO
DECLARE &lt;/span&gt;&lt;span style="color:teal;"&gt;@SqlCmd &lt;/span&gt;&lt;span style="color:blue;"&gt;NVARCHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;MAX&lt;/span&gt;&lt;span style="color:gray;"&gt;) = &lt;/span&gt;&lt;span style="color:red;"&gt;N'
CREATE EVENT SESSION SQLStmtEvents
ON SERVER
ADD EVENT sqlserver.sql_statement_completed
(    SET collect_statement=1
    ACTION (sqlserver.sql_text, sqlserver.tsql_stack)
    WHERE (sqlserver.session_id = '&lt;/span&gt;&lt;span style="color:gray;"&gt;+&lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;@@SPID &lt;/span&gt;&lt;span style="color:blue;"&gt;AS NVARCHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;4&lt;span style="color:gray;"&gt;))+&lt;/span&gt;&lt;span style="color:red;"&gt;')    ),
ADD EVENT sqlserver.sql_statement_starting
(    SET collect_statement=1
    ACTION (sqlserver.sql_text, sqlserver.tsql_stack)
    WHERE (sqlserver.session_id = '&lt;/span&gt;&lt;span style="color:gray;"&gt;+&lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;@@SPID &lt;/span&gt;&lt;span style="color:blue;"&gt;AS NVARCHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;4&lt;span style="color:gray;"&gt;))+&lt;/span&gt;&lt;span style="color:red;"&gt;')    )
ADD target package0.ring_buffer
WITH (MAX_DISPATCH_LATENCY=5SECONDS, TRACK_CAUSALITY=ON)'&lt;/span&gt;&lt;span style="color:gray;"&gt;;
&lt;/span&gt;&lt;span style="color:blue;"&gt;EXEC&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;@SqlCmd&lt;/span&gt;&lt;span style="color:gray;"&gt;);
&lt;/span&gt;&lt;span style="color:blue;"&gt;GO
ALTER EVENT SESSION &lt;/span&gt;&lt;span style="color:teal;"&gt;SQLStmtEvents
&lt;/span&gt;&lt;span style="color:blue;"&gt;ON SERVER
STATE&lt;/span&gt;&lt;span style="color:gray;"&gt;=&lt;/span&gt;&lt;span style="color:teal;"&gt;START&lt;/span&gt;&lt;span style="color:gray;"&gt;;
&lt;/span&gt;&lt;span style="color:blue;"&gt;GO

SELECT &lt;/span&gt;&lt;span style="color:gray;"&gt;* 
&lt;/span&gt;&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;objects

&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color:gray;"&gt;* 
&lt;/span&gt;&lt;span style="color:blue;"&gt;FROM master&lt;/span&gt;&lt;span style="color:gray;"&gt;..&lt;/span&gt;&lt;span style="color:teal;"&gt;spt_values
&lt;/span&gt;&lt;span style="color:blue;"&gt;WHERE type &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;N'P'

&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color:gray;"&gt;*
&lt;/span&gt;&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:green;"&gt;INFORMATION_SCHEMA&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;TABLES
&lt;/span&gt;&lt;span style="color:blue;"&gt;GO
&lt;/span&gt;&lt;/pre&gt;
  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;With this turned on, all we have to do is query the Event Data and parse out the statement column to know the specific statement that was executing.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:green;"&gt;-- Extract the Event information from the Event Session 
&lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT 
    &lt;/span&gt;&lt;span style="color:teal;"&gt;event_name&lt;/span&gt;&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:blue;"&gt;timestamp&lt;/span&gt;&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:teal;"&gt;cpu&lt;/span&gt;&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:teal;"&gt;duration&lt;/span&gt;&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:teal;"&gt;reads&lt;/span&gt;&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:teal;"&gt;writes&lt;/span&gt;&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:blue;"&gt;state&lt;/span&gt;&lt;span style="color:gray;"&gt;, 
    &lt;/span&gt;&lt;span style="color:blue;"&gt;statement&lt;/span&gt;&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;&lt;span style="color:teal;"&gt;activity_id&lt;/span&gt;&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;&lt;span style="color:teal;"&gt;event_sequence
&lt;/span&gt;&lt;span style="color:blue;"&gt;FROM
&lt;/span&gt;&lt;span style="color:gray;"&gt;(
    &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT 
        &lt;/span&gt;&lt;span style="color:teal;"&gt;event_data&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/@name)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varchar(50)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;event_name&lt;/span&gt;&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;DATEADD&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;hh&lt;/span&gt;&lt;span style="color:gray;"&gt;, 
            &lt;/span&gt;&lt;span style="color:magenta;"&gt;DATEDIFF&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;hh&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:magenta;"&gt;GETUTCDATE&lt;/span&gt;&lt;span style="color:gray;"&gt;(), &lt;/span&gt;&lt;span style="color:magenta;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color:gray;"&gt;), 
            &lt;/span&gt;&lt;span style="color:teal;"&gt;event_data&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/@timestamp)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'datetime2'&lt;/span&gt;&lt;span style="color:gray;"&gt;)) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;[timestamp]&lt;/span&gt;&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:teal;"&gt;event_data&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;cpu&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'int'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;[cpu]&lt;/span&gt;&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:teal;"&gt;event_data&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;duration&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'bigint'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;[duration]&lt;/span&gt;&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:teal;"&gt;event_data&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;reads&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'bigint'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;[reads]&lt;/span&gt;&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:teal;"&gt;event_data&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;writes&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'bigint'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;[writes]&lt;/span&gt;&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:teal;"&gt;event_data&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;state&amp;quot;]/text)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'nvarchar(4000)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;[state]&lt;/span&gt;&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:teal;"&gt;event_data&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/data[@name=&amp;quot;statement&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'nvarchar(max)'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;[statement]&lt;/span&gt;&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;event_data&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;attach_activity_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varchar(50)'&lt;/span&gt;&lt;span style="color:gray;"&gt;), &lt;/span&gt;1&lt;span style="color:gray;"&gt;, &lt;/span&gt;36&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS uniqueidentifier&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;as &lt;/span&gt;&lt;span style="color:teal;"&gt;activity_id&lt;/span&gt;&lt;span style="color:gray;"&gt;,
        &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;event_data&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;value&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'(event/action[@name=&amp;quot;attach_activity_id&amp;quot;]/value)[1]'&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;'varchar(50)'&lt;/span&gt;&lt;span style="color:gray;"&gt;), &lt;/span&gt;38&lt;span style="color:gray;"&gt;, &lt;/span&gt;10&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS int&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;as &lt;/span&gt;&lt;span style="color:teal;"&gt;event_sequence
    &lt;/span&gt;&lt;span style="color:blue;"&gt;FROM 
    &lt;/span&gt;&lt;span style="color:gray;"&gt;(   &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color:teal;"&gt;XEvent&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;query&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'.'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;event_data 
        &lt;/span&gt;&lt;span style="color:blue;"&gt;FROM 
        &lt;/span&gt;&lt;span style="color:gray;"&gt;(    &lt;/span&gt;&lt;span style="color:green;"&gt;-- Cast the target_data to XML 
            &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT &lt;/span&gt;&lt;span style="color:magenta;"&gt;CAST&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;target_data &lt;/span&gt;&lt;span style="color:blue;"&gt;AS XML&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;TargetData 
            &lt;/span&gt;&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_session_targets &lt;/span&gt;&lt;span style="color:teal;"&gt;st 
            &lt;/span&gt;&lt;span style="color:gray;"&gt;JOIN &lt;/span&gt;&lt;span style="color:green;"&gt;sys&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:green;"&gt;dm_xe_sessions &lt;/span&gt;&lt;span style="color:teal;"&gt;s 
                &lt;/span&gt;&lt;span style="color:blue;"&gt;ON &lt;/span&gt;&lt;span style="color:teal;"&gt;s&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;address &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:teal;"&gt;st&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;event_session_address 
            &lt;/span&gt;&lt;span style="color:blue;"&gt;WHERE &lt;/span&gt;&lt;span style="color:teal;"&gt;name &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'SQLStmtEvents' 
              &lt;/span&gt;&lt;span style="color:gray;"&gt;AND &lt;/span&gt;&lt;span style="color:teal;"&gt;target_name &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:red;"&gt;'ring_buffer'
        &lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;Data 
        &lt;/span&gt;&lt;span style="color:green;"&gt;-- Split out the Event Nodes 
        &lt;/span&gt;&lt;span style="color:gray;"&gt;CROSS APPLY &lt;/span&gt;&lt;span style="color:teal;"&gt;TargetData&lt;/span&gt;&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:teal;"&gt;nodes &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'RingBufferTarget/event'&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;XEventData &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;XEvent&lt;/span&gt;&lt;span style="color:gray;"&gt;)   
    ) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;tab &lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:teal;"&gt;event_data&lt;/span&gt;&lt;span style="color:gray;"&gt;)
) &lt;/span&gt;&lt;span style="color:blue;"&gt;AS &lt;/span&gt;&lt;span style="color:teal;"&gt;results
&lt;/span&gt;&lt;/pre&gt;

  &lt;pre class="code"&gt;&lt;a href="http://sqlblog.com/blogs/jonathan_kehayias/image_2477E935.png" target="_blank"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://sqlblog.com/blogs/jonathan_kehayias/image_thumb_5747EFA9.png" width="644" height="102" /&gt;&lt;/a&gt; &lt;/pre&gt;
  &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;The new statement column in Denali CTP 1 eliminates the need to do offset parsing of the sql_text Action entirely.&amp;#160; Knowing that, it really became clear to me that the addition of the offset information in the Event’s base column payload was really useless, and for that I submitted a different Connect feedback item &lt;a href="https://connect.microsoft.com/SQLServer/feedback/details/639818/extended-events-remove-data-from-event-output-that-is-available-by-actions"&gt;Extended Events - Remove data from Event output that is available by Actions&lt;/a&gt;.&amp;#160; You might ask why does this matter?&amp;#160; It matters because for everytime the Event fires, this information is included in the Event Data for the Event.&amp;#160; Since Event Data is materialized as XML, this becomes needless bloat of the Event Data output for the Event and it really is useless information.&amp;#160; If you really wanted to collect the offset information, you could add the tsql_stack Action to the Events to collect it, so there is no reason for the Event to carry this information by default.&lt;/p&gt;

&lt;p&gt;So there you have it.&amp;#160; How to parse the sqlserver.sql_text Action in SQL Server 2008 using offset information to isolate the actual executing statement from a multi-statement batch using a work around, and why its not necessary to do this in SQL Server Denali going forward. &lt;/p&gt;</description></item></channel></rss>