{"id":2630,"date":"2013-04-22T11:09:39","date_gmt":"2013-04-22T11:09:39","guid":{"rendered":"http:\/\/enjoyasp.net\/?p=2630"},"modified":"2013-04-22T11:09:39","modified_gmt":"2013-04-22T11:09:39","slug":"%e5%9c%a8%e7%ba%bf%e6%83%85%e5%86%b5%e7%bb%9f%e8%ae%a1sp_whoisactive","status":"publish","type":"post","link":"https:\/\/enjoyasp.net\/index.php\/2013\/04\/22\/%e5%9c%a8%e7%ba%bf%e6%83%85%e5%86%b5%e7%bb%9f%e8%ae%a1sp_whoisactive\/","title":{"rendered":"\u5728\u7ebf\u60c5\u51b5\u7edf\u8ba1sp_WhoIsActive"},"content":{"rendered":"<pre class=\"brush:sql;first-line:1;pad-line-numbers:true;highlight:null;collapse:false;\">\r\n\r\n\r\n\/*********************************************************************************************\r\n\r\nWho Is Active? v11.11 (2012-03-22)\r\n\r\n(C) 2007-2012, Adam Machanic\r\n\r\n\r\n\r\nFeedback: mailto:amachanic@gmail.com\r\n\r\nUpdates: http:\/\/sqlblog.com\/blogs\/adam_machanic\/archive\/tags\/who+is+active\/default.aspx\r\n\r\n&quot;Beta&quot; Builds: http:\/\/sqlblog.com\/files\/folders\/beta\/tags\/who+is+active\/default.aspx\r\n\r\n\r\n\r\nDonate! Support this project: http:\/\/tinyurl.com\/WhoIsActiveDonate\r\n\r\n\r\n\r\nLicense: \r\n\r\n\tWho is Active? is free to download and use for personal, educational, and internal \r\n\r\n\tcorporate purposes, provided that this header is preserved. Redistribution or sale \r\n\r\n\tof Who is Active?, in whole or in part, is prohibited without the author&#39;s express \r\n\r\n\twritten consent.\r\n\r\n*********************************************************************************************\/\r\n\r\nCREATE PROC dbo.sp_WhoIsActive\r\n\r\n(\r\n\r\n--~\r\n\r\n\t--Filters--Both inclusive and exclusive\r\n\r\n\t--Set either filter to &#39;&#39; to disable\r\n\r\n\t--Valid filter types are: session, program, database, login, and host\r\n\r\n\t--Session is a session ID, and either 0 or &#39;&#39; can be used to indicate &quot;all&quot; sessions\r\n\r\n\t--All other filter types support % or _ as wildcards\r\n\r\n\t@filter sysname = &#39;&#39;,\r\n\r\n\t@filter_type VARCHAR(10) = &#39;session&#39;,\r\n\r\n\t@not_filter sysname = &#39;&#39;,\r\n\r\n\t@not_filter_type VARCHAR(10) = &#39;session&#39;,\r\n\r\n\r\n\r\n\t--Retrieve data about the calling session?\r\n\r\n\t@show_own_spid BIT = 0,\r\n\r\n\r\n\r\n\t--Retrieve data about system sessions?\r\n\r\n\t@show_system_spids BIT = 0,\r\n\r\n\r\n\r\n\t--Controls how sleeping SPIDs are handled, based on the idea of levels of interest\r\n\r\n\t--0 does not pull any sleeping SPIDs\r\n\r\n\t--1 pulls only those sleeping SPIDs that also have an open transaction\r\n\r\n\t--2 pulls all sleeping SPIDs\r\n\r\n\t@show_sleeping_spids TINYINT = 1,\r\n\r\n\r\n\r\n\t--If 1, gets the full stored procedure or running batch, when available\r\n\r\n\t--If 0, gets only the actual statement that is currently running in the batch or procedure\r\n\r\n\t@get_full_inner_text BIT = 0,\r\n\r\n\r\n\r\n\t--Get associated query plans for running tasks, if available\r\n\r\n\t--If @get_plans = 1, gets the plan based on the request&#39;s statement offset\r\n\r\n\t--If @get_plans = 2, gets the entire plan based on the request&#39;s plan_handle\r\n\r\n\t@get_plans TINYINT = 0,\r\n\r\n\r\n\r\n\t--Get the associated outer ad hoc query or stored procedure call, if available\r\n\r\n\t@get_outer_command BIT = 0,\r\n\r\n\r\n\r\n\t--Enables pulling transaction log write info and transaction duration\r\n\r\n\t@get_transaction_info BIT = 0,\r\n\r\n\r\n\r\n\t--Get information on active tasks, based on three interest levels\r\n\r\n\t--Level 0 does not pull any task-related information\r\n\r\n\t--Level 1 is a lightweight mode that pulls the top non-CXPACKET wait, giving preference to blockers\r\n\r\n\t--Level 2 pulls all available task-based metrics, including: \r\n\r\n\t--number of active tasks, current wait stats, physical I\/O, context switches, and blocker information\r\n\r\n\t@get_task_info TINYINT = 1,\r\n\r\n\r\n\r\n\t--Gets associated locks for each request, aggregated in an XML format\r\n\r\n\t@get_locks BIT = 0,\r\n\r\n\r\n\r\n\t--Get average time for past runs of an active query\r\n\r\n\t--(based on the combination of plan handle, sql handle, and offset)\r\n\r\n\t@get_avg_time BIT = 0,\r\n\r\n\r\n\r\n\t--Get additional non-performance-related information about the session or request\r\n\r\n\t--text_size, language, date_format, date_first, quoted_identifier, arithabort, ansi_null_dflt_on, \r\n\r\n\t--ansi_defaults, ansi_warnings, ansi_padding, ansi_nulls, concat_null_yields_null, \r\n\r\n\t--transaction_isolation_level, lock_timeout, deadlock_priority, row_count, command_type\r\n\r\n\t--\r\n\r\n\t--If a SQL Agent job is running, an subnode called agent_info will be populated with some or all of\r\n\r\n\t--the following: job_id, job_name, step_id, step_name, msdb_query_error (in the event of an error)\r\n\r\n\t--\r\n\r\n\t--If @get_task_info is set to 2 and a lock wait is detected, a subnode called block_info will be\r\n\r\n\t--populated with some or all of the following: lock_type, database_name, object_id, file_id, hobt_id, \r\n\r\n\t--applock_hash, metadata_resource, metadata_class_id, object_name, schema_name\r\n\r\n\t@get_additional_info BIT = 0,\r\n\r\n\r\n\r\n\t--Walk the blocking chain and count the number of \r\n\r\n\t--total SPIDs blocked all the way down by a given session\r\n\r\n\t--Also enables task_info Level 1, if @get_task_info is set to 0\r\n\r\n\t@find_block_leaders BIT = 0,\r\n\r\n\r\n\r\n\t--Pull deltas on various metrics\r\n\r\n\t--Interval in seconds to wait before doing the second data pull\r\n\r\n\t@delta_interval TINYINT = 0,\r\n\r\n\r\n\r\n\t--List of desired output columns, in desired order\r\n\r\n\t--Note that the final output will be the intersection of all enabled features and all \r\n\r\n\t--columns in the list. Therefore, only columns associated with enabled features will \r\n\r\n\t--actually appear in the output. Likewise, removing columns from this list may effectively\r\n\r\n\t--disable features, even if they are turned on\r\n\r\n\t--\r\n\r\n\t--Each element in this list must be one of the valid output column names. Names must be\r\n\r\n\t--delimited by square brackets. White space, formatting, and additional characters are\r\n\r\n\t--allowed, as long as the list contains exact matches of delimited valid column names.\r\n\r\n\t@output_column_list VARCHAR(8000) = &#39;[dd%][session_id][sql_text][sql_command][login_name][wait_info][tasks][tran_log%][cpu%][temp%][block%][reads%][writes%][context%][physical%][query_plan][locks][%]&#39;,\r\n\r\n\r\n\r\n\t--Column(s) by which to sort output, optionally with sort directions. \r\n\r\n\t\t--Valid column choices:\r\n\r\n\t\t--session_id, physical_io, reads, physical_reads, writes, tempdb_allocations,\r\n\r\n\t\t--tempdb_current, CPU, context_switches, used_memory, physical_io_delta, \r\n\r\n\t\t--reads_delta, physical_reads_delta, writes_delta, tempdb_allocations_delta, \r\n\r\n\t\t--tempdb_current_delta, CPU_delta, context_switches_delta, used_memory_delta, \r\n\r\n\t\t--tasks, tran_start_time, open_tran_count, blocking_session_id, blocked_session_count,\r\n\r\n\t\t--percent_complete, host_name, login_name, database_name, start_time, login_time\r\n\r\n\t\t--\r\n\r\n\t\t--Note that column names in the list must be bracket-delimited. Commas and\/or white\r\n\r\n\t\t--space are not required. \r\n\r\n\t@sort_order VARCHAR(500) = &#39;[start_time] ASC&#39;,\r\n\r\n\r\n\r\n\t--Formats some of the output columns in a more &quot;human readable&quot; form\r\n\r\n\t--0 disables outfput format\r\n\r\n\t--1 formats the output for variable-width fonts\r\n\r\n\t--2 formats the output for fixed-width fonts\r\n\r\n\t@format_output TINYINT = 1,\r\n\r\n\r\n\r\n\t--If set to a non-blank value, the script will attempt to insert into the specified \r\n\r\n\t--destination table. Please note that the script will not verify that the table exists, \r\n\r\n\t--or that it has the correct schema, before doing the insert.\r\n\r\n\t--Table can be specified in one, two, or three-part format\r\n\r\n\t@destination_table VARCHAR(4000) = &#39;&#39;,\r\n\r\n\r\n\r\n\t--If set to 1, no data collection will happen and no result set will be returned; instead,\r\n\r\n\t--a CREATE TABLE statement will be returned via the @schema parameter, which will match \r\n\r\n\t--the schema of the result set that would be returned by using the same collection of the\r\n\r\n\t--rest of the parameters. The CREATE TABLE statement will have a placeholder token of \r\n\r\n\t--&lt;table_name&gt; in place of an actual table name.\r\n\r\n\t@return_schema BIT = 0,\r\n\r\n\t@schema VARCHAR(MAX) = NULL OUTPUT,\r\n\r\n\r\n\r\n\t--Help! What do I do?\r\n\r\n\t@help BIT = 0\r\n\r\n--~\r\n\r\n)\r\n\r\n\/*\r\n\r\nOUTPUT COLUMNS\r\n\r\n--------------\r\n\r\nFormatted\/Non:\t[session_id] [smallint] NOT NULL\r\n\r\n\tSession ID (a.k.a. SPID)\r\n\r\n\r\n\r\nFormatted:\t\t[dd hh:mm:ss.mss] [varchar](15) NULL\r\n\r\nNon-Formatted:\t&lt;not returned&gt;\r\n\r\n\tFor an active request, time the query has been running\r\n\r\n\tFor a sleeping session, time since the last batch completed\r\n\r\n\r\n\r\nFormatted:\t\t[dd hh:mm:ss.mss (avg)] [varchar](15) NULL\r\n\r\nNon-Formatted:\t[avg_elapsed_time] [int] NULL\r\n\r\n\t(Requires @get_avg_time option)\r\n\r\n\tHow much time has the active portion of the query taken in the past, on average?\r\n\r\n\r\n\r\nFormatted:\t\t[physical_io] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[physical_io] [bigint] NULL\r\n\r\n\tShows the number of physical I\/Os, for active requests\r\n\r\n\r\n\r\nFormatted:\t\t[reads] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[reads] [bigint] NULL\r\n\r\n\tFor an active request, number of reads done for the current query\r\n\r\n\tFor a sleeping session, total number of reads done over the lifetime of the session\r\n\r\n\r\n\r\nFormatted:\t\t[physical_reads] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[physical_reads] [bigint] NULL\r\n\r\n\tFor an active request, number of physical reads done for the current query\r\n\r\n\tFor a sleeping session, total number of physical reads done over the lifetime of the session\r\n\r\n\r\n\r\nFormatted:\t\t[writes] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[writes] [bigint] NULL\r\n\r\n\tFor an active request, number of writes done for the current query\r\n\r\n\tFor a sleeping session, total number of writes done over the lifetime of the session\r\n\r\n\r\n\r\nFormatted:\t\t[tempdb_allocations] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[tempdb_allocations] [bigint] NULL\r\n\r\n\tFor an active request, number of TempDB writes done for the current query\r\n\r\n\tFor a sleeping session, total number of TempDB writes done over the lifetime of the session\r\n\r\n\r\n\r\nFormatted:\t\t[tempdb_current] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[tempdb_current] [bigint] NULL\r\n\r\n\tFor an active request, number of TempDB pages currently allocated for the query\r\n\r\n\tFor a sleeping session, number of TempDB pages currently allocated for the session\r\n\r\n\r\n\r\nFormatted:\t\t[CPU] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[CPU] [int] NULL\r\n\r\n\tFor an active request, total CPU time consumed by the current query\r\n\r\n\tFor a sleeping session, total CPU time consumed over the lifetime of the session\r\n\r\n\r\n\r\nFormatted:\t\t[context_switches] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[context_switches] [bigint] NULL\r\n\r\n\tShows the number of context switches, for active requests\r\n\r\n\r\n\r\nFormatted:\t\t[used_memory] [varchar](30) NOT NULL\r\n\r\nNon-Formatted:\t[used_memory] [bigint] NOT NULL\r\n\r\n\tFor an active request, total memory consumption for the current query\r\n\r\n\tFor a sleeping session, total current memory consumption\r\n\r\n\r\n\r\nFormatted:\t\t[physical_io_delta] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[physical_io_delta] [bigint] NULL\r\n\r\n\t(Requires @delta_interval option)\r\n\r\n\tDifference between the number of physical I\/Os reported on the first and second collections. \r\n\r\n\tIf the request started after the first collection, the value will be NULL\r\n\r\n\r\n\r\nFormatted:\t\t[reads_delta] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[reads_delta] [bigint] NULL\r\n\r\n\t(Requires @delta_interval option)\r\n\r\n\tDifference between the number of reads reported on the first and second collections. \r\n\r\n\tIf the request started after the first collection, the value will be NULL\r\n\r\n\r\n\r\nFormatted:\t\t[physical_reads_delta] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[physical_reads_delta] [bigint] NULL\r\n\r\n\t(Requires @delta_interval option)\r\n\r\n\tDifference between the number of physical reads reported on the first and second collections. \r\n\r\n\tIf the request started after the first collection, the value will be NULL\r\n\r\n\r\n\r\nFormatted:\t\t[writes_delta] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[writes_delta] [bigint] NULL\r\n\r\n\t(Requires @delta_interval option)\r\n\r\n\tDifference between the number of writes reported on the first and second collections. \r\n\r\n\tIf the request started after the first collection, the value will be NULL\r\n\r\n\r\n\r\nFormatted:\t\t[tempdb_allocations_delta] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[tempdb_allocations_delta] [bigint] NULL\r\n\r\n\t(Requires @delta_interval option)\r\n\r\n\tDifference between the number of TempDB writes reported on the first and second collections. \r\n\r\n\tIf the request started after the first collection, the value will be NULL\r\n\r\n\r\n\r\nFormatted:\t\t[tempdb_current_delta] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[tempdb_current_delta] [bigint] NULL\r\n\r\n\t(Requires @delta_interval option)\r\n\r\n\tDifference between the number of allocated TempDB pages reported on the first and second \r\n\r\n\tcollections. If the request started after the first collection, the value will be NULL\r\n\r\n\r\n\r\nFormatted:\t\t[CPU_delta] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[CPU_delta] [int] NULL\r\n\r\n\t(Requires @delta_interval option)\r\n\r\n\tDifference between the CPU time reported on the first and second collections. \r\n\r\n\tIf the request started after the first collection, the value will be NULL\r\n\r\n\r\n\r\nFormatted:\t\t[context_switches_delta] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[context_switches_delta] [bigint] NULL\r\n\r\n\t(Requires @delta_interval option)\r\n\r\n\tDifference between the context switches count reported on the first and second collections\r\n\r\n\tIf the request started after the first collection, the value will be NULL\r\n\r\n\r\n\r\nFormatted:\t\t[used_memory_delta] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[used_memory_delta] [bigint] NULL\r\n\r\n\tDifference between the memory usage reported on the first and second collections\r\n\r\n\tIf the request started after the first collection, the value will be NULL\r\n\r\n\r\n\r\nFormatted:\t\t[tasks] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[tasks] [smallint] NULL\r\n\r\n\tNumber of worker tasks currently allocated, for active requests\r\n\r\n\r\n\r\nFormatted\/Non:\t[status] [varchar](30) NOT NULL\r\n\r\n\tActivity status for the session (running, sleeping, etc)\r\n\r\n\r\n\r\nFormatted\/Non:\t[wait_info] [nvarchar](4000) NULL\r\n\r\n\tAggregates wait information, in the following format:\r\n\r\n\t\t(Ax: Bms\/Cms\/Dms)E\r\n\r\n\tA is the number of waiting tasks currently waiting on resource type E. B\/C\/D are wait\r\n\r\n\ttimes, in milliseconds. If only one thread is waiting, its wait time will be shown as B.\r\n\r\n\tIf two tasks are waiting, each of their wait times will be shown (B\/C). If three or more \r\n\r\n\ttasks are waiting, the minimum, average, and maximum wait times will be shown (B\/C\/D).\r\n\r\n\tIf wait type E is a page latch wait and the page is of a &quot;special&quot; type (e.g. PFS, GAM, SGAM), \r\n\r\n\tthe page type will be identified.\r\n\r\n\tIf wait type E is CXPACKET, the nodeId from the query plan will be identified\r\n\r\n\r\n\r\nFormatted\/Non:\t[locks] [xml] NULL\r\n\r\n\t(Requires @get_locks option)\r\n\r\n\tAggregates lock information, in XML format.\r\n\r\n\tThe lock XML includes the lock mode, locked object, and aggregates the number of requests. \r\n\r\n\tAttempts are made to identify locked objects by name\r\n\r\n\r\n\r\nFormatted\/Non:\t[tran_start_time] [datetime] NULL\r\n\r\n\t(Requires @get_transaction_info option)\r\n\r\n\tDate and time that the first transaction opened by a session caused a transaction log \r\n\r\n\twrite to occur.\r\n\r\n\r\n\r\nFormatted\/Non:\t[tran_log_writes] [nvarchar](4000) NULL\r\n\r\n\t(Requires @get_transaction_info option)\r\n\r\n\tAggregates transaction log write information, in the following format:\r\n\r\n\tA:wB (C kB)\r\n\r\n\tA is a database that has been touched by an active transaction\r\n\r\n\tB is the number of log writes that have been made in the database as a result of the transaction\r\n\r\n\tC is the number of log kilobytes consumed by the log records\r\n\r\n\r\n\r\nFormatted:\t\t[open_tran_count] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[open_tran_count] [smallint] NULL\r\n\r\n\tShows the number of open transactions the session has open\r\n\r\n\r\n\r\nFormatted:\t\t[sql_command] [xml] NULL\r\n\r\nNon-Formatted:\t[sql_command] [nvarchar](max) NULL\r\n\r\n\t(Requires @get_outer_command option)\r\n\r\n\tShows the &quot;outer&quot; SQL command, i.e. the text of the batch or RPC sent to the server, \r\n\r\n\tif available\r\n\r\n\r\n\r\nFormatted:\t\t[sql_text] [xml] NULL\r\n\r\nNon-Formatted:\t[sql_text] [nvarchar](max) NULL\r\n\r\n\tShows the SQL text for active requests or the last statement executed\r\n\r\n\tfor sleeping sessions, if available in either case.\r\n\r\n\tIf @get_full_inner_text option is set, shows the full text of the batch.\r\n\r\n\tOtherwise, shows only the active statement within the batch.\r\n\r\n\tIf the query text is locked, a special timeout message will be sent, in the following format:\r\n\r\n\t\t&lt;timeout_exceeded \/&gt;\r\n\r\n\tIf an error occurs, an error message will be sent, in the following format:\r\n\r\n\t\t&lt;error message=&quot;message&quot; \/&gt;\r\n\r\n\r\n\r\nFormatted\/Non:\t[query_plan] [xml] NULL\r\n\r\n\t(Requires @get_plans option)\r\n\r\n\tShows the query plan for the request, if available.\r\n\r\n\tIf the plan is locked, a special timeout message will be sent, in the following format:\r\n\r\n\t\t&lt;timeout_exceeded \/&gt;\r\n\r\n\tIf an error occurs, an error message will be sent, in the following format:\r\n\r\n\t\t&lt;error message=&quot;message&quot; \/&gt;\r\n\r\n\r\n\r\nFormatted\/Non:\t[blocking_session_id] [smallint] NULL\r\n\r\n\tWhen applicable, shows the blocking SPID\r\n\r\n\r\n\r\nFormatted:\t\t[blocked_session_count] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[blocked_session_count] [smallint] NULL\r\n\r\n\t(Requires @find_block_leaders option)\r\n\r\n\tThe total number of SPIDs blocked by this session,\r\n\r\n\tall the way down the blocking chain.\r\n\r\n\r\n\r\nFormatted:\t\t[percent_complete] [varchar](30) NULL\r\n\r\nNon-Formatted:\t[percent_complete] [real] NULL\r\n\r\n\tWhen applicable, shows the percent complete (e.g. for backups, restores, and some rollbacks)\r\n\r\n\r\n\r\nFormatted\/Non:\t[host_name] [sysname] NOT NULL\r\n\r\n\tShows the host name for the connection\r\n\r\n\r\n\r\nFormatted\/Non:\t[login_name] [sysname] NOT NULL\r\n\r\n\tShows the login name for the connection\r\n\r\n\r\n\r\nFormatted\/Non:\t[database_name] [sysname] NULL\r\n\r\n\tShows the connected database\r\n\r\n\r\n\r\nFormatted\/Non:\t[program_name] [sysname] NULL\r\n\r\n\tShows the reported program\/application name\r\n\r\n\r\n\r\nFormatted\/Non:\t[additional_info] [xml] NULL\r\n\r\n\t(Requires @get_additional_info option)\r\n\r\n\tReturns additional non-performance-related session\/request information\r\n\r\n\tIf the script finds a SQL Agent job running, the name of the job and job step will be reported\r\n\r\n\tIf @get_task_info = 2 and the script finds a lock wait, the locked object will be reported\r\n\r\n\r\n\r\nFormatted\/Non:\t[start_time] [datetime] NOT NULL\r\n\r\n\tFor active requests, shows the time the request started\r\n\r\n\tFor sleeping sessions, shows the time the last batch completed\r\n\r\n\r\n\r\nFormatted\/Non:\t[login_time] [datetime] NOT NULL\r\n\r\n\tShows the time that the session connected\r\n\r\n\r\n\r\nFormatted\/Non:\t[request_id] [int] NULL\r\n\r\n\tFor active requests, shows the request_id\r\n\r\n\tShould be 0 unless MARS is being used\r\n\r\n\r\n\r\nFormatted\/Non:\t[collection_time] [datetime] NOT NULL\r\n\r\n\tTime that this script&#39;s final SELECT ran\r\n\r\n*\/\r\n\r\nAS\r\n\r\nBEGIN;\r\n\r\n\tSET NOCOUNT ON; \r\n\r\n\tSET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;\r\n\r\n\tSET QUOTED_IDENTIFIER ON;\r\n\r\n\tSET ANSI_PADDING ON;\r\n\r\n\tSET CONCAT_NULL_YIELDS_NULL ON;\r\n\r\n\tSET ANSI_WARNINGS ON;\r\n\r\n\tSET NUMERIC_ROUNDABORT OFF;\r\n\r\n\tSET ARITHABORT ON;\r\n\r\n\r\n\r\n\tIF\r\n\r\n\t\t@filter IS NULL\r\n\r\n\t\tOR @filter_type IS NULL\r\n\r\n\t\tOR @not_filter IS NULL\r\n\r\n\t\tOR @not_filter_type IS NULL\r\n\r\n\t\tOR @show_own_spid IS NULL\r\n\r\n\t\tOR @show_system_spids IS NULL\r\n\r\n\t\tOR @show_sleeping_spids IS NULL\r\n\r\n\t\tOR @get_full_inner_text IS NULL\r\n\r\n\t\tOR @get_plans IS NULL\r\n\r\n\t\tOR @get_outer_command IS NULL\r\n\r\n\t\tOR @get_transaction_info IS NULL\r\n\r\n\t\tOR @get_task_info IS NULL\r\n\r\n\t\tOR @get_locks IS NULL\r\n\r\n\t\tOR @get_avg_time IS NULL\r\n\r\n\t\tOR @get_additional_info IS NULL\r\n\r\n\t\tOR @find_block_leaders IS NULL\r\n\r\n\t\tOR @delta_interval IS NULL\r\n\r\n\t\tOR @format_output IS NULL\r\n\r\n\t\tOR @output_column_list IS NULL\r\n\r\n\t\tOR @sort_order IS NULL\r\n\r\n\t\tOR @return_schema IS NULL\r\n\r\n\t\tOR @destination_table IS NULL\r\n\r\n\t\tOR @help IS NULL\r\n\r\n\tBEGIN;\r\n\r\n\t\tRAISERROR(&#39;Input parameters cannot be NULL&#39;, 16, 1);\r\n\r\n\t\tRETURN;\r\n\r\n\tEND;\r\n\r\n\t\r\n\r\n\tIF @filter_type NOT IN (&#39;session&#39;, &#39;program&#39;, &#39;database&#39;, &#39;login&#39;, &#39;host&#39;)\r\n\r\n\tBEGIN;\r\n\r\n\t\tRAISERROR(&#39;Valid filter types are: session, program, database, login, host&#39;, 16, 1);\r\n\r\n\t\tRETURN;\r\n\r\n\tEND;\r\n\r\n\t\r\n\r\n\tIF @filter_type = &#39;session&#39; AND @filter LIKE &#39;%[^0123456789]%&#39;\r\n\r\n\tBEGIN;\r\n\r\n\t\tRAISERROR(&#39;Session filters must be valid integers&#39;, 16, 1);\r\n\r\n\t\tRETURN;\r\n\r\n\tEND;\r\n\r\n\t\r\n\r\n\tIF @not_filter_type NOT IN (&#39;session&#39;, &#39;program&#39;, &#39;database&#39;, &#39;login&#39;, &#39;host&#39;)\r\n\r\n\tBEGIN;\r\n\r\n\t\tRAISERROR(&#39;Valid filter types are: session, program, database, login, host&#39;, 16, 1);\r\n\r\n\t\tRETURN;\r\n\r\n\tEND;\r\n\r\n\t\r\n\r\n\tIF @not_filter_type = &#39;session&#39; AND @not_filter LIKE &#39;%[^0123456789]%&#39;\r\n\r\n\tBEGIN;\r\n\r\n\t\tRAISERROR(&#39;Session filters must be valid integers&#39;, 16, 1);\r\n\r\n\t\tRETURN;\r\n\r\n\tEND;\r\n\r\n\t\r\n\r\n\tIF @show_sleeping_spids NOT IN (0, 1, 2)\r\n\r\n\tBEGIN;\r\n\r\n\t\tRAISERROR(&#39;Valid values for @show_sleeping_spids are: 0, 1, or 2&#39;, 16, 1);\r\n\r\n\t\tRETURN;\r\n\r\n\tEND;\r\n\r\n\t\r\n\r\n\tIF @get_plans NOT IN (0, 1, 2)\r\n\r\n\tBEGIN;\r\n\r\n\t\tRAISERROR(&#39;Valid values for @get_plans are: 0, 1, or 2&#39;, 16, 1);\r\n\r\n\t\tRETURN;\r\n\r\n\tEND;\r\n\r\n\r\n\r\n\tIF @get_task_info NOT IN (0, 1, 2)\r\n\r\n\tBEGIN;\r\n\r\n\t\tRAISERROR(&#39;Valid values for @get_task_info are: 0, 1, or 2&#39;, 16, 1);\r\n\r\n\t\tRETURN;\r\n\r\n\tEND;\r\n\r\n\r\n\r\n\tIF @format_output NOT IN (0, 1, 2)\r\n\r\n\tBEGIN;\r\n\r\n\t\tRAISERROR(&#39;Valid values for @format_output are: 0, 1, or 2&#39;, 16, 1);\r\n\r\n\t\tRETURN;\r\n\r\n\tEND;\r\n\r\n\t\r\n\r\n\tIF @help = 1\r\n\r\n\tBEGIN;\r\n\r\n\t\tDECLARE \r\n\r\n\t\t\t@header VARCHAR(MAX),\r\n\r\n\t\t\t@params VARCHAR(MAX),\r\n\r\n\t\t\t@outputs VARCHAR(MAX);\r\n\r\n\r\n\r\n\t\tSELECT \r\n\r\n\t\t\t@header =\r\n\r\n\t\t\t\tREPLACE\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tVARCHAR(MAX),\r\n\r\n\t\t\t\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tt.text, \r\n\r\n\t\t\t\t\t\t\t\tCHARINDEX(&#39;\/&#39; + REPLICATE(&#39;*&#39;, 93), t.text) + 94,\r\n\r\n\t\t\t\t\t\t\t\tCHARINDEX(REPLICATE(&#39;*&#39;, 93) + &#39;\/&#39;, t.text) - (CHARINDEX(&#39;\/&#39; + REPLICATE(&#39;*&#39;, 93), t.text) + 94)\r\n\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\tCHAR(13)+CHAR(10),\r\n\r\n\t\t\t\t\t\tCHAR(13)\r\n\r\n\t\t\t\t\t),\r\n\r\n\t\t\t\t\t&#39;\t&#39;,\r\n\r\n\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t),\r\n\r\n\t\t\t@params =\r\n\r\n\t\t\t\tCHAR(13) +\r\n\r\n\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tVARCHAR(MAX),\r\n\r\n\t\t\t\t\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tt.text, \r\n\r\n\t\t\t\t\t\t\t\t\tCHARINDEX(&#39;--~&#39;, t.text) + 5, \r\n\r\n\t\t\t\t\t\t\t\t\tCHARINDEX(&#39;--~&#39;, t.text, CHARINDEX(&#39;--~&#39;, t.text) + 5) - (CHARINDEX(&#39;--~&#39;, t.text) + 5)\r\n\r\n\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\tCHAR(13)+CHAR(10),\r\n\r\n\t\t\t\t\t\t\tCHAR(13)\r\n\r\n\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t&#39;\t&#39;,\r\n\r\n\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t),\r\n\r\n\t\t\t\t@outputs = \r\n\r\n\t\t\t\t\tCHAR(13) +\r\n\r\n\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tVARCHAR(MAX),\r\n\r\n\t\t\t\t\t\t\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tt.text, \r\n\r\n\t\t\t\t\t\t\t\t\t\t\tCHARINDEX(&#39;OUTPUT COLUMNS&#39;+CHAR(13)+CHAR(10)+&#39;--------------&#39;, t.text) + 32,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tCHARINDEX(&#39;*\/&#39;, t.text, CHARINDEX(&#39;OUTPUT COLUMNS&#39;+CHAR(13)+CHAR(10)+&#39;--------------&#39;, t.text) + 32) - (CHARINDEX(&#39;OUTPUT COLUMNS&#39;+CHAR(13)+CHAR(10)+&#39;--------------&#39;, t.text) + 32)\r\n\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\t\tCHAR(9),\r\n\r\n\t\t\t\t\t\t\t\t\tCHAR(255)\r\n\r\n\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\tCHAR(13)+CHAR(10),\r\n\r\n\t\t\t\t\t\t\t\tCHAR(13)\r\n\r\n\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t&#39;\t&#39;,\r\n\r\n\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t) +\r\n\r\n\t\t\t\t\t\tCHAR(13)\r\n\r\n\t\tFROM sys.dm_exec_requests AS r\r\n\r\n\t\tCROSS APPLY sys.dm_exec_sql_text(r.sql_handle) AS t\r\n\r\n\t\tWHERE\r\n\r\n\t\t\tr.session_id = @@SPID;\r\n\r\n\r\n\r\n\t\tWITH\r\n\r\n\t\ta0 AS\r\n\r\n\t\t(SELECT 1 AS n UNION ALL SELECT 1),\r\n\r\n\t\ta1 AS\r\n\r\n\t\t(SELECT 1 AS n FROM a0 AS a, a0 AS b),\r\n\r\n\t\ta2 AS\r\n\r\n\t\t(SELECT 1 AS n FROM a1 AS a, a1 AS b),\r\n\r\n\t\ta3 AS\r\n\r\n\t\t(SELECT 1 AS n FROM a2 AS a, a2 AS b),\r\n\r\n\t\ta4 AS\r\n\r\n\t\t(SELECT 1 AS n FROM a3 AS a, a3 AS b),\r\n\r\n\t\tnumbers AS\r\n\r\n\t\t(\r\n\r\n\t\t\tSELECT TOP(LEN(@header) - 1)\r\n\r\n\t\t\t\tROW_NUMBER() OVER\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tORDER BY (SELECT NULL)\r\n\r\n\t\t\t\t) AS number\r\n\r\n\t\t\tFROM a4\r\n\r\n\t\t\tORDER BY\r\n\r\n\t\t\t\tnumber\r\n\r\n\t\t)\r\n\r\n\t\tSELECT\r\n\r\n\t\t\tRTRIM(LTRIM(\r\n\r\n\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\t@header,\r\n\r\n\t\t\t\t\tnumber + 1,\r\n\r\n\t\t\t\t\tCHARINDEX(CHAR(13), @header, number + 1) - number - 1\r\n\r\n\t\t\t\t)\r\n\r\n\t\t\t)) AS [------header---------------------------------------------------------------------------------------------------------------]\r\n\r\n\t\tFROM numbers\r\n\r\n\t\tWHERE\r\n\r\n\t\t\tSUBSTRING(@header, number, 1) = CHAR(13);\r\n\r\n\r\n\r\n\t\tWITH\r\n\r\n\t\ta0 AS\r\n\r\n\t\t(SELECT 1 AS n UNION ALL SELECT 1),\r\n\r\n\t\ta1 AS\r\n\r\n\t\t(SELECT 1 AS n FROM a0 AS a, a0 AS b),\r\n\r\n\t\ta2 AS\r\n\r\n\t\t(SELECT 1 AS n FROM a1 AS a, a1 AS b),\r\n\r\n\t\ta3 AS\r\n\r\n\t\t(SELECT 1 AS n FROM a2 AS a, a2 AS b),\r\n\r\n\t\ta4 AS\r\n\r\n\t\t(SELECT 1 AS n FROM a3 AS a, a3 AS b),\r\n\r\n\t\tnumbers AS\r\n\r\n\t\t(\r\n\r\n\t\t\tSELECT TOP(LEN(@params) - 1)\r\n\r\n\t\t\t\tROW_NUMBER() OVER\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tORDER BY (SELECT NULL)\r\n\r\n\t\t\t\t) AS number\r\n\r\n\t\t\tFROM a4\r\n\r\n\t\t\tORDER BY\r\n\r\n\t\t\t\tnumber\r\n\r\n\t\t),\r\n\r\n\t\ttokens AS\r\n\r\n\t\t(\r\n\r\n\t\t\tSELECT \r\n\r\n\t\t\t\tRTRIM(LTRIM(\r\n\r\n\t\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t@params,\r\n\r\n\t\t\t\t\t\tnumber + 1,\r\n\r\n\t\t\t\t\t\tCHARINDEX(CHAR(13), @params, number + 1) - number - 1\r\n\r\n\t\t\t\t\t)\r\n\r\n\t\t\t\t)) AS token,\r\n\r\n\t\t\t\tnumber,\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN SUBSTRING(@params, number + 1, 1) = CHAR(13) THEN number\r\n\r\n\t\t\t\t\tELSE COALESCE(NULLIF(CHARINDEX(&#39;,&#39; + CHAR(13) + CHAR(13), @params, number), 0), LEN(@params)) \r\n\r\n\t\t\t\tEND AS param_group,\r\n\r\n\t\t\t\tROW_NUMBER() OVER\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tPARTITION BY\r\n\r\n\t\t\t\t\t\tCHARINDEX(&#39;,&#39; + CHAR(13) + CHAR(13), @params, number),\r\n\r\n\t\t\t\t\t\tSUBSTRING(@params, number+1, 1)\r\n\r\n\t\t\t\t\tORDER BY \r\n\r\n\t\t\t\t\t\tnumber\r\n\r\n\t\t\t\t) AS group_order\r\n\r\n\t\t\tFROM numbers\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\tSUBSTRING(@params, number, 1) = CHAR(13)\r\n\r\n\t\t),\r\n\r\n\t\tparsed_tokens AS\r\n\r\n\t\t(\r\n\r\n\t\t\tSELECT\r\n\r\n\t\t\t\tMIN\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN token LIKE &#39;@%&#39; THEN token\r\n\r\n\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\tEND\r\n\r\n\t\t\t\t) AS parameter,\r\n\r\n\t\t\t\tMIN\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN token LIKE &#39;--%&#39; THEN RIGHT(token, LEN(token) - 2)\r\n\r\n\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\tEND\r\n\r\n\t\t\t\t) AS description,\r\n\r\n\t\t\t\tparam_group,\r\n\r\n\t\t\t\tgroup_order\r\n\r\n\t\t\tFROM tokens\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\tNOT \r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\ttoken = &#39;&#39; \r\n\r\n\t\t\t\t\tAND group_order &gt; 1\r\n\r\n\t\t\t\t)\r\n\r\n\t\t\tGROUP BY\r\n\r\n\t\t\t\tparam_group,\r\n\r\n\t\t\t\tgroup_order\r\n\r\n\t\t)\r\n\r\n\t\tSELECT\r\n\r\n\t\t\tCASE\r\n\r\n\t\t\t\tWHEN description IS NULL AND parameter IS NULL THEN &#39;-------------------------------------------------------------------------&#39;\r\n\r\n\t\t\t\tWHEN param_group = MAX(param_group) OVER() THEN parameter\r\n\r\n\t\t\t\tELSE COALESCE(LEFT(parameter, LEN(parameter) - 1), &#39;&#39;)\r\n\r\n\t\t\tEND AS [------parameter----------------------------------------------------------],\r\n\r\n\t\t\tCASE\r\n\r\n\t\t\t\tWHEN description IS NULL AND parameter IS NULL THEN &#39;----------------------------------------------------------------------------------------------------------------------&#39;\r\n\r\n\t\t\t\tELSE COALESCE(description, &#39;&#39;)\r\n\r\n\t\t\tEND AS [------description-----------------------------------------------------------------------------------------------------]\r\n\r\n\t\tFROM parsed_tokens\r\n\r\n\t\tORDER BY\r\n\r\n\t\t\tparam_group, \r\n\r\n\t\t\tgroup_order;\r\n\r\n\t\t\r\n\r\n\t\tWITH\r\n\r\n\t\ta0 AS\r\n\r\n\t\t(SELECT 1 AS n UNION ALL SELECT 1),\r\n\r\n\t\ta1 AS\r\n\r\n\t\t(SELECT 1 AS n FROM a0 AS a, a0 AS b),\r\n\r\n\t\ta2 AS\r\n\r\n\t\t(SELECT 1 AS n FROM a1 AS a, a1 AS b),\r\n\r\n\t\ta3 AS\r\n\r\n\t\t(SELECT 1 AS n FROM a2 AS a, a2 AS b),\r\n\r\n\t\ta4 AS\r\n\r\n\t\t(SELECT 1 AS n FROM a3 AS a, a3 AS b),\r\n\r\n\t\tnumbers AS\r\n\r\n\t\t(\r\n\r\n\t\t\tSELECT TOP(LEN(@outputs) - 1)\r\n\r\n\t\t\t\tROW_NUMBER() OVER\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tORDER BY (SELECT NULL)\r\n\r\n\t\t\t\t) AS number\r\n\r\n\t\t\tFROM a4\r\n\r\n\t\t\tORDER BY\r\n\r\n\t\t\t\tnumber\r\n\r\n\t\t),\r\n\r\n\t\ttokens AS\r\n\r\n\t\t(\r\n\r\n\t\t\tSELECT \r\n\r\n\t\t\t\tRTRIM(LTRIM(\r\n\r\n\t\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t@outputs,\r\n\r\n\t\t\t\t\t\tnumber + 1,\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t\t\tCOALESCE(NULLIF(CHARINDEX(CHAR(13) + &#39;Formatted&#39;, @outputs, number + 1), 0), LEN(@outputs)) &lt; \r\n\r\n\t\t\t\t\t\t\t\tCOALESCE(NULLIF(CHARINDEX(CHAR(13) + CHAR(255) COLLATE Latin1_General_Bin2, @outputs, number + 1), 0), LEN(@outputs))\r\n\r\n\t\t\t\t\t\t\t\tTHEN COALESCE(NULLIF(CHARINDEX(CHAR(13) + &#39;Formatted&#39;, @outputs, number + 1), 0), LEN(@outputs)) - number - 1\r\n\r\n\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\tCOALESCE(NULLIF(CHARINDEX(CHAR(13) + CHAR(255) COLLATE Latin1_General_Bin2, @outputs, number + 1), 0), LEN(@outputs)) - number - 1\r\n\r\n\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t)\r\n\r\n\t\t\t\t)) AS token,\r\n\r\n\t\t\t\tnumber,\r\n\r\n\t\t\t\tCOALESCE(NULLIF(CHARINDEX(CHAR(13) + &#39;Formatted&#39;, @outputs, number + 1), 0), LEN(@outputs)) AS output_group,\r\n\r\n\t\t\t\tROW_NUMBER() OVER\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tPARTITION BY \r\n\r\n\t\t\t\t\t\tCOALESCE(NULLIF(CHARINDEX(CHAR(13) + &#39;Formatted&#39;, @outputs, number + 1), 0), LEN(@outputs))\r\n\r\n\t\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\t\tnumber\r\n\r\n\t\t\t\t) AS output_group_order\r\n\r\n\t\t\tFROM numbers\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\tSUBSTRING(@outputs, number, 10) = CHAR(13) + &#39;Formatted&#39;\r\n\r\n\t\t\t\tOR SUBSTRING(@outputs, number, 2) = CHAR(13) + CHAR(255) COLLATE Latin1_General_Bin2\r\n\r\n\t\t),\r\n\r\n\t\toutput_tokens AS\r\n\r\n\t\t(\r\n\r\n\t\t\tSELECT \r\n\r\n\t\t\t\t*,\r\n\r\n\t\t\t\tCASE output_group_order\r\n\r\n\t\t\t\t\tWHEN 2 THEN MAX(CASE output_group_order WHEN 1 THEN token ELSE NULL END) OVER (PARTITION BY output_group)\r\n\r\n\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\tEND COLLATE Latin1_General_Bin2 AS column_info\r\n\r\n\t\t\tFROM tokens\r\n\r\n\t\t)\r\n\r\n\t\tSELECT\r\n\r\n\t\t\tCASE output_group_order\r\n\r\n\t\t\t\tWHEN 1 THEN &#39;-----------------------------------&#39;\r\n\r\n\t\t\t\tWHEN 2 THEN \r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN CHARINDEX(&#39;Formatted\/Non:&#39;, column_info) = 1 THEN\r\n\r\n\t\t\t\t\t\t\tSUBSTRING(column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info)+1, CHARINDEX(&#39;]&#39;, column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info)+2) - CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info))\r\n\r\n\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\tSUBSTRING(column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info)+2, CHARINDEX(&#39;]&#39;, column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info)+2) - CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info)-1)\r\n\r\n\r\n\r\n\t\t\t\t\tEND\r\n\r\n\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\tEND AS formatted_column_name,\r\n\r\n\t\t\tCASE output_group_order\r\n\r\n\t\t\t\tWHEN 1 THEN &#39;-----------------------------------&#39;\r\n\r\n\t\t\t\tWHEN 2 THEN \r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN CHARINDEX(&#39;Formatted\/Non:&#39;, column_info) = 1 THEN\r\n\r\n\t\t\t\t\t\t\tSUBSTRING(column_info, CHARINDEX(&#39;]&#39;, column_info)+2, LEN(column_info))\r\n\r\n\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\tSUBSTRING(column_info, CHARINDEX(&#39;]&#39;, column_info)+2, CHARINDEX(&#39;Non-Formatted:&#39;, column_info, CHARINDEX(&#39;]&#39;, column_info)+2) - CHARINDEX(&#39;]&#39;, column_info)-3)\r\n\r\n\t\t\t\t\tEND\r\n\r\n\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\tEND AS formatted_column_type,\r\n\r\n\t\t\tCASE output_group_order\r\n\r\n\t\t\t\tWHEN 1 THEN &#39;---------------------------------------&#39;\r\n\r\n\t\t\t\tWHEN 2 THEN \r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN CHARINDEX(&#39;Formatted\/Non:&#39;, column_info) = 1 THEN &#39;&#39;\r\n\r\n\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\tWHEN SUBSTRING(column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX(&#39;Non-Formatted:&#39;, column_info))+1, 1) = &#39;&lt;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\tSUBSTRING(column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX(&#39;Non-Formatted:&#39;, column_info))+1, CHARINDEX(&#39;&gt;&#39;, column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX(&#39;Non-Formatted:&#39;\r\n, column_info))+1) - CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX(&#39;Non-Formatted:&#39;, column_info)))\r\n\r\n\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\tSUBSTRING(column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX(&#39;Non-Formatted:&#39;, column_info))+1, CHARINDEX(&#39;]&#39;, column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX(&#39;Non-Formatted:&#39;\r\n, column_info))+1) - CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX(&#39;Non-Formatted:&#39;, column_info)))\r\n\r\n\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\tEND\r\n\r\n\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\tEND AS unformatted_column_name,\r\n\r\n\t\t\tCASE output_group_order\r\n\r\n\t\t\t\tWHEN 1 THEN &#39;---------------------------------------&#39;\r\n\r\n\t\t\t\tWHEN 2 THEN \r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN CHARINDEX(&#39;Formatted\/Non:&#39;, column_info) = 1 THEN &#39;&#39;\r\n\r\n\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\tWHEN SUBSTRING(column_info, CHARINDEX(CHAR(255) COLLATE Latin1_General_Bin2, column_info, CHARINDEX(&#39;Non-Formatted:&#39;, column_info))+1, 1) = &#39;&lt;&#39; THEN &#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\tSUBSTRING(column_info, CHARINDEX(&#39;]&#39;, column_info, CHARINDEX(&#39;Non-Formatted:&#39;, column_info))+2, CHARINDEX(&#39;Non-Formatted:&#39;, column_info, CHARINDEX(&#39;]&#39;, column_info)+2) - CHARINDEX(&#39;]&#39;, column_info)-3)\r\n\r\n\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\tEND\r\n\r\n\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\tEND AS unformatted_column_type,\r\n\r\n\t\t\tCASE output_group_order\r\n\r\n\t\t\t\tWHEN 1 THEN &#39;----------------------------------------------------------------------------------------------------------------------&#39;\r\n\r\n\t\t\t\tELSE REPLACE(token, CHAR(255) COLLATE Latin1_General_Bin2, &#39;&#39;)\r\n\r\n\t\t\tEND AS [------description-----------------------------------------------------------------------------------------------------]\r\n\r\n\t\tFROM output_tokens\r\n\r\n\t\tWHERE\r\n\r\n\t\t\tNOT \r\n\r\n\t\t\t(\r\n\r\n\t\t\t\toutput_group_order = 1 \r\n\r\n\t\t\t\tAND output_group = LEN(@outputs)\r\n\r\n\t\t\t)\r\n\r\n\t\tORDER BY\r\n\r\n\t\t\toutput_group,\r\n\r\n\t\t\tCASE output_group_order\r\n\r\n\t\t\t\tWHEN 1 THEN 99\r\n\r\n\t\t\t\tELSE output_group_order\r\n\r\n\t\t\tEND;\r\n\r\n\r\n\r\n\t\tRETURN;\r\n\r\n\tEND;\r\n\r\n\r\n\r\n\tWITH\r\n\r\n\ta0 AS\r\n\r\n\t(SELECT 1 AS n UNION ALL SELECT 1),\r\n\r\n\ta1 AS\r\n\r\n\t(SELECT 1 AS n FROM a0 AS a, a0 AS b),\r\n\r\n\ta2 AS\r\n\r\n\t(SELECT 1 AS n FROM a1 AS a, a1 AS b),\r\n\r\n\ta3 AS\r\n\r\n\t(SELECT 1 AS n FROM a2 AS a, a2 AS b),\r\n\r\n\ta4 AS\r\n\r\n\t(SELECT 1 AS n FROM a3 AS a, a3 AS b),\r\n\r\n\tnumbers AS\r\n\r\n\t(\r\n\r\n\t\tSELECT TOP(LEN(@output_column_list))\r\n\r\n\t\t\tROW_NUMBER() OVER\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tORDER BY (SELECT NULL)\r\n\r\n\t\t\t) AS number\r\n\r\n\t\tFROM a4\r\n\r\n\t\tORDER BY\r\n\r\n\t\t\tnumber\r\n\r\n\t),\r\n\r\n\ttokens AS\r\n\r\n\t(\r\n\r\n\t\tSELECT \r\n\r\n\t\t\t&#39;|[&#39; +\r\n\r\n\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\t@output_column_list,\r\n\r\n\t\t\t\t\tnumber + 1,\r\n\r\n\t\t\t\t\tCHARINDEX(&#39;]&#39;, @output_column_list, number) - number - 1\r\n\r\n\t\t\t\t) + &#39;|]&#39; AS token,\r\n\r\n\t\t\tnumber\r\n\r\n\t\tFROM numbers\r\n\r\n\t\tWHERE\r\n\r\n\t\t\tSUBSTRING(@output_column_list, number, 1) = &#39;[&#39;\r\n\r\n\t),\r\n\r\n\tordered_columns AS\r\n\r\n\t(\r\n\r\n\t\tSELECT\r\n\r\n\t\t\tx.column_name,\r\n\r\n\t\t\tROW_NUMBER() OVER\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tPARTITION BY\r\n\r\n\t\t\t\t\tx.column_name\r\n\r\n\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\ttokens.number,\r\n\r\n\t\t\t\t\tx.default_order\r\n\r\n\t\t\t) AS r,\r\n\r\n\t\t\tROW_NUMBER() OVER\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\ttokens.number,\r\n\r\n\t\t\t\t\tx.default_order\r\n\r\n\t\t\t) AS s\r\n\r\n\t\tFROM tokens\r\n\r\n\t\tJOIN\r\n\r\n\t\t(\r\n\r\n\t\t\tSELECT &#39;[session_id]&#39; AS column_name, 1 AS default_order\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[dd hh:mm:ss.mss]&#39;, 2\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@format_output IN (1, 2)\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[dd hh:mm:ss.mss (avg)]&#39;, 3\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@format_output IN (1, 2)\r\n\r\n\t\t\t\tAND @get_avg_time = 1\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[avg_elapsed_time]&#39;, 4\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@format_output = 0\r\n\r\n\t\t\t\tAND @get_avg_time = 1\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[physical_io]&#39;, 5\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@get_task_info = 2\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[reads]&#39;, 6\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[physical_reads]&#39;, 7\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[writes]&#39;, 8\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tempdb_allocations]&#39;, 9\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tempdb_current]&#39;, 10\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[CPU]&#39;, 11\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[context_switches]&#39;, 12\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@get_task_info = 2\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[used_memory]&#39;, 13\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[physical_io_delta]&#39;, 14\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@delta_interval &gt; 0\t\r\n\r\n\t\t\t\tAND @get_task_info = 2\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[reads_delta]&#39;, 15\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@delta_interval &gt; 0\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[physical_reads_delta]&#39;, 16\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@delta_interval &gt; 0\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[writes_delta]&#39;, 17\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@delta_interval &gt; 0\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tempdb_allocations_delta]&#39;, 18\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@delta_interval &gt; 0\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tempdb_current_delta]&#39;, 19\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@delta_interval &gt; 0\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[CPU_delta]&#39;, 20\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@delta_interval &gt; 0\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[context_switches_delta]&#39;, 21\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@delta_interval &gt; 0\r\n\r\n\t\t\t\tAND @get_task_info = 2\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[used_memory_delta]&#39;, 22\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@delta_interval &gt; 0\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tasks]&#39;, 23\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@get_task_info = 2\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[status]&#39;, 24\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[wait_info]&#39;, 25\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@get_task_info &gt; 0\r\n\r\n\t\t\t\tOR @find_block_leaders = 1\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[locks]&#39;, 26\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@get_locks = 1\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tran_start_time]&#39;, 27\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@get_transaction_info = 1\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tran_log_writes]&#39;, 28\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@get_transaction_info = 1\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[open_tran_count]&#39;, 29\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[sql_command]&#39;, 30\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@get_outer_command = 1\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[sql_text]&#39;, 31\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[query_plan]&#39;, 32\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@get_plans &gt;= 1\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[blocking_session_id]&#39;, 33\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@get_task_info &gt; 0\r\n\r\n\t\t\t\tOR @find_block_leaders = 1\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[blocked_session_count]&#39;, 34\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@find_block_leaders = 1\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[percent_complete]&#39;, 35\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[host_name]&#39;, 36\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[login_name]&#39;, 37\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[database_name]&#39;, 38\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[program_name]&#39;, 39\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[additional_info]&#39;, 40\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\t@get_additional_info = 1\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[start_time]&#39;, 41\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[login_time]&#39;, 42\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[request_id]&#39;, 43\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[collection_time]&#39;, 44\r\n\r\n\t\t) AS x ON \r\n\r\n\t\t\tx.column_name LIKE token ESCAPE &#39;|&#39;\r\n\r\n\t)\r\n\r\n\tSELECT\r\n\r\n\t\t@output_column_list =\r\n\r\n\t\t\tSTUFF\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tSELECT\r\n\r\n\t\t\t\t\t\t&#39;,&#39; + column_name as [text()]\r\n\r\n\t\t\t\t\tFROM ordered_columns\r\n\r\n\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\tr = 1\r\n\r\n\t\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\t\ts\r\n\r\n\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\tPATH(&#39;&#39;)\r\n\r\n\t\t\t\t),\r\n\r\n\t\t\t\t1,\r\n\r\n\t\t\t\t1,\r\n\r\n\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t);\r\n\r\n\t\r\n\r\n\tIF COALESCE(RTRIM(@output_column_list), &#39;&#39;) = &#39;&#39;\r\n\r\n\tBEGIN;\r\n\r\n\t\tRAISERROR(&#39;No valid column matches found in @output_column_list or no columns remain due to selected options.&#39;, 16, 1);\r\n\r\n\t\tRETURN;\r\n\r\n\tEND;\r\n\r\n\t\r\n\r\n\tIF @destination_table &lt;&gt; &#39;&#39;\r\n\r\n\tBEGIN;\r\n\r\n\t\tSET @destination_table = \r\n\r\n\t\t\t--database\r\n\r\n\t\t\tCOALESCE(QUOTENAME(PARSENAME(@destination_table, 3)) + &#39;.&#39;, &#39;&#39;) +\r\n\r\n\t\t\t--schema\r\n\r\n\t\t\tCOALESCE(QUOTENAME(PARSENAME(@destination_table, 2)) + &#39;.&#39;, &#39;&#39;) +\r\n\r\n\t\t\t--table\r\n\r\n\t\t\tCOALESCE(QUOTENAME(PARSENAME(@destination_table, 1)), &#39;&#39;);\r\n\r\n\t\t\t\r\n\r\n\t\tIF COALESCE(RTRIM(@destination_table), &#39;&#39;) = &#39;&#39;\r\n\r\n\t\tBEGIN;\r\n\r\n\t\t\tRAISERROR(&#39;Destination table not properly formatted.&#39;, 16, 1);\r\n\r\n\t\t\tRETURN;\r\n\r\n\t\tEND;\r\n\r\n\tEND;\r\n\r\n\r\n\r\n\tWITH\r\n\r\n\ta0 AS\r\n\r\n\t(SELECT 1 AS n UNION ALL SELECT 1),\r\n\r\n\ta1 AS\r\n\r\n\t(SELECT 1 AS n FROM a0 AS a, a0 AS b),\r\n\r\n\ta2 AS\r\n\r\n\t(SELECT 1 AS n FROM a1 AS a, a1 AS b),\r\n\r\n\ta3 AS\r\n\r\n\t(SELECT 1 AS n FROM a2 AS a, a2 AS b),\r\n\r\n\ta4 AS\r\n\r\n\t(SELECT 1 AS n FROM a3 AS a, a3 AS b),\r\n\r\n\tnumbers AS\r\n\r\n\t(\r\n\r\n\t\tSELECT TOP(LEN(@sort_order))\r\n\r\n\t\t\tROW_NUMBER() OVER\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tORDER BY (SELECT NULL)\r\n\r\n\t\t\t) AS number\r\n\r\n\t\tFROM a4\r\n\r\n\t\tORDER BY\r\n\r\n\t\t\tnumber\r\n\r\n\t),\r\n\r\n\ttokens AS\r\n\r\n\t(\r\n\r\n\t\tSELECT \r\n\r\n\t\t\t&#39;|[&#39; +\r\n\r\n\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\t@sort_order,\r\n\r\n\t\t\t\t\tnumber + 1,\r\n\r\n\t\t\t\t\tCHARINDEX(&#39;]&#39;, @sort_order, number) - number - 1\r\n\r\n\t\t\t\t) + &#39;|]&#39; AS token,\r\n\r\n\t\t\tSUBSTRING\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\t@sort_order,\r\n\r\n\t\t\t\tCHARINDEX(&#39;]&#39;, @sort_order, number) + 1,\r\n\r\n\t\t\t\tCOALESCE(NULLIF(CHARINDEX(&#39;[&#39;, @sort_order, CHARINDEX(&#39;]&#39;, @sort_order, number)), 0), LEN(@sort_order)) - CHARINDEX(&#39;]&#39;, @sort_order, number)\r\n\r\n\t\t\t) AS next_chunk,\r\n\r\n\t\t\tnumber\r\n\r\n\t\tFROM numbers\r\n\r\n\t\tWHERE\r\n\r\n\t\t\tSUBSTRING(@sort_order, number, 1) = &#39;[&#39;\r\n\r\n\t),\r\n\r\n\tordered_columns AS\r\n\r\n\t(\r\n\r\n\t\tSELECT\r\n\r\n\t\t\tx.column_name +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN tokens.next_chunk LIKE &#39;%asc%&#39; THEN &#39; ASC&#39;\r\n\r\n\t\t\t\t\tWHEN tokens.next_chunk LIKE &#39;%desc%&#39; THEN &#39; DESC&#39;\r\n\r\n\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\tEND AS column_name,\r\n\r\n\t\t\tROW_NUMBER() OVER\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tPARTITION BY\r\n\r\n\t\t\t\t\tx.column_name\r\n\r\n\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\ttokens.number\r\n\r\n\t\t\t) AS r,\r\n\r\n\t\t\ttokens.number\r\n\r\n\t\tFROM tokens\r\n\r\n\t\tJOIN\r\n\r\n\t\t(\r\n\r\n\t\t\tSELECT &#39;[session_id]&#39; AS column_name\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[physical_io]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[reads]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[physical_reads]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[writes]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tempdb_allocations]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tempdb_current]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[CPU]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[context_switches]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[used_memory]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[physical_io_delta]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[reads_delta]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[physical_reads_delta]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[writes_delta]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tempdb_allocations_delta]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tempdb_current_delta]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[CPU_delta]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[context_switches_delta]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[used_memory_delta]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tasks]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[tran_start_time]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[open_tran_count]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[blocking_session_id]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[blocked_session_count]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[percent_complete]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[host_name]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[login_name]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[database_name]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[start_time]&#39;\r\n\r\n\t\t\tUNION ALL\r\n\r\n\t\t\tSELECT &#39;[login_time]&#39;\r\n\r\n\t\t) AS x ON \r\n\r\n\t\t\tx.column_name LIKE token ESCAPE &#39;|&#39;\r\n\r\n\t)\r\n\r\n\tSELECT\r\n\r\n\t\t@sort_order = COALESCE(z.sort_order, &#39;&#39;)\r\n\r\n\tFROM\r\n\r\n\t(\r\n\r\n\t\tSELECT\r\n\r\n\t\t\tSTUFF\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tSELECT\r\n\r\n\t\t\t\t\t\t&#39;,&#39; + column_name as [text()]\r\n\r\n\t\t\t\t\tFROM ordered_columns\r\n\r\n\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\tr = 1\r\n\r\n\t\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\t\tnumber\r\n\r\n\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\tPATH(&#39;&#39;)\r\n\r\n\t\t\t\t),\r\n\r\n\t\t\t\t1,\r\n\r\n\t\t\t\t1,\r\n\r\n\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t) AS sort_order\r\n\r\n\t) AS z;\r\n\r\n\r\n\r\n\tCREATE TABLE #sessions\r\n\r\n\t(\r\n\r\n\t\trecursion SMALLINT NOT NULL,\r\n\r\n\t\tsession_id SMALLINT NOT NULL,\r\n\r\n\t\trequest_id INT NOT NULL,\r\n\r\n\t\tsession_number INT NOT NULL,\r\n\r\n\t\telapsed_time INT NOT NULL,\r\n\r\n\t\tavg_elapsed_time INT NULL,\r\n\r\n\t\tphysical_io BIGINT NULL,\r\n\r\n\t\treads BIGINT NULL,\r\n\r\n\t\tphysical_reads BIGINT NULL,\r\n\r\n\t\twrites BIGINT NULL,\r\n\r\n\t\ttempdb_allocations BIGINT NULL,\r\n\r\n\t\ttempdb_current BIGINT NULL,\r\n\r\n\t\tCPU INT NULL,\r\n\r\n\t\tthread_CPU_snapshot BIGINT NULL,\r\n\r\n\t\tcontext_switches BIGINT NULL,\r\n\r\n\t\tused_memory BIGINT NOT NULL, \r\n\r\n\t\ttasks SMALLINT NULL,\r\n\r\n\t\tstatus VARCHAR(30) NOT NULL,\r\n\r\n\t\twait_info NVARCHAR(4000) NULL,\r\n\r\n\t\tlocks XML NULL,\r\n\r\n\t\ttransaction_id BIGINT NULL,\r\n\r\n\t\ttran_start_time DATETIME NULL,\r\n\r\n\t\ttran_log_writes NVARCHAR(4000) NULL,\r\n\r\n\t\topen_tran_count SMALLINT NULL,\r\n\r\n\t\tsql_command XML NULL,\r\n\r\n\t\tsql_handle VARBINARY(64) NULL,\r\n\r\n\t\tstatement_start_offset INT NULL,\r\n\r\n\t\tstatement_end_offset INT NULL,\r\n\r\n\t\tsql_text XML NULL,\r\n\r\n\t\tplan_handle VARBINARY(64) NULL,\r\n\r\n\t\tquery_plan XML NULL,\r\n\r\n\t\tblocking_session_id SMALLINT NULL,\r\n\r\n\t\tblocked_session_count SMALLINT NULL,\r\n\r\n\t\tpercent_complete REAL NULL,\r\n\r\n\t\thost_name sysname NULL,\r\n\r\n\t\tlogin_name sysname NOT NULL,\r\n\r\n\t\tdatabase_name sysname NULL,\r\n\r\n\t\tprogram_name sysname NULL,\r\n\r\n\t\tadditional_info XML NULL,\r\n\r\n\t\tstart_time DATETIME NOT NULL,\r\n\r\n\t\tlogin_time DATETIME NULL,\r\n\r\n\t\tlast_request_start_time DATETIME NULL,\r\n\r\n\t\tPRIMARY KEY CLUSTERED (session_id, request_id, recursion) WITH (IGNORE_DUP_KEY = ON),\r\n\r\n\t\tUNIQUE NONCLUSTERED (transaction_id, session_id, request_id, recursion) WITH (IGNORE_DUP_KEY = ON)\r\n\r\n\t);\r\n\r\n\r\n\r\n\tIF @return_schema = 0\r\n\r\n\tBEGIN;\r\n\r\n\t\t--Disable unnecessary autostats on the table\r\n\r\n\t\tCREATE STATISTICS s_session_id ON #sessions (session_id)\r\n\r\n\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\tCREATE STATISTICS s_request_id ON #sessions (request_id)\r\n\r\n\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\tCREATE STATISTICS s_transaction_id ON #sessions (transaction_id)\r\n\r\n\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\tCREATE STATISTICS s_session_number ON #sessions (session_number)\r\n\r\n\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\tCREATE STATISTICS s_status ON #sessions (status)\r\n\r\n\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\tCREATE STATISTICS s_start_time ON #sessions (start_time)\r\n\r\n\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\tCREATE STATISTICS s_last_request_start_time ON #sessions (last_request_start_time)\r\n\r\n\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\tCREATE STATISTICS s_recursion ON #sessions (recursion)\r\n\r\n\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\r\n\r\n\t\tDECLARE @recursion SMALLINT;\r\n\r\n\t\tSET @recursion = \r\n\r\n\t\t\tCASE @delta_interval\r\n\r\n\t\t\t\tWHEN 0 THEN 1\r\n\r\n\t\t\t\tELSE -1\r\n\r\n\t\t\tEND;\r\n\r\n\r\n\r\n\t\tDECLARE @first_collection_ms_ticks BIGINT;\r\n\r\n\t\tDECLARE @last_collection_start DATETIME;\r\n\r\n\r\n\r\n\t\t--Used for the delta pull\r\n\r\n\t\tREDO:;\r\n\r\n\t\t\r\n\r\n\t\tIF \r\n\r\n\t\t\t@get_locks = 1 \r\n\r\n\t\t\tAND @recursion = 1\r\n\r\n\t\t\tAND @output_column_list LIKE &#39;%|[locks|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\tBEGIN;\r\n\r\n\t\t\tSELECT\r\n\r\n\t\t\t\ty.resource_type,\r\n\r\n\t\t\t\ty.database_name,\r\n\r\n\t\t\t\ty.object_id,\r\n\r\n\t\t\t\ty.file_id,\r\n\r\n\t\t\t\ty.page_type,\r\n\r\n\t\t\t\ty.hobt_id,\r\n\r\n\t\t\t\ty.allocation_unit_id,\r\n\r\n\t\t\t\ty.index_id,\r\n\r\n\t\t\t\ty.schema_id,\r\n\r\n\t\t\t\ty.principal_id,\r\n\r\n\t\t\t\ty.request_mode,\r\n\r\n\t\t\t\ty.request_status,\r\n\r\n\t\t\t\ty.session_id,\r\n\r\n\t\t\t\ty.resource_description,\r\n\r\n\t\t\t\ty.request_count,\r\n\r\n\t\t\t\ts.request_id,\r\n\r\n\t\t\t\ts.start_time,\r\n\r\n\t\t\t\tCONVERT(sysname, NULL) AS object_name,\r\n\r\n\t\t\t\tCONVERT(sysname, NULL) AS index_name,\r\n\r\n\t\t\t\tCONVERT(sysname, NULL) AS schema_name,\r\n\r\n\t\t\t\tCONVERT(sysname, NULL) AS principal_name,\r\n\r\n\t\t\t\tCONVERT(NVARCHAR(2048), NULL) AS query_error\r\n\r\n\t\t\tINTO #locks\r\n\r\n\t\t\tFROM\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tSELECT\r\n\r\n\t\t\t\t\tsp.spid AS session_id,\r\n\r\n\t\t\t\t\tCASE sp.status\r\n\r\n\t\t\t\t\t\tWHEN &#39;sleeping&#39; THEN CONVERT(INT, 0)\r\n\r\n\t\t\t\t\t\tELSE sp.request_id\r\n\r\n\t\t\t\t\tEND AS request_id,\r\n\r\n\t\t\t\t\tCASE sp.status\r\n\r\n\t\t\t\t\t\tWHEN &#39;sleeping&#39; THEN sp.last_batch\r\n\r\n\t\t\t\t\t\tELSE COALESCE(req.start_time, sp.last_batch)\r\n\r\n\t\t\t\t\tEND AS start_time,\r\n\r\n\t\t\t\t\tsp.dbid\r\n\r\n\t\t\t\tFROM sys.sysprocesses AS sp\r\n\r\n\t\t\t\tOUTER APPLY\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tsp.hostprocess &gt; &#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\tOR r.total_elapsed_time &lt; 0\r\n\r\n\t\t\t\t\t\t\t) THEN\r\n\r\n\t\t\t\t\t\t\t\tr.start_time\r\n\r\n\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\tDATEADD\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tms, \r\n\r\n\t\t\t\t\t\t\t\t\t1000 * (DATEPART(ms, DATEADD(second, -(r.total_elapsed_time \/ 1000), GETDATE())) \/ 500) - DATEPART(ms, DATEADD(second, -(r.total_elapsed_time \/ 1000), GETDATE())), \r\n\r\n\t\t\t\t\t\t\t\t\tDATEADD(second, -(r.total_elapsed_time \/ 1000), GETDATE())\r\n\r\n\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\tEND AS start_time\r\n\r\n\t\t\t\t\tFROM sys.dm_exec_requests AS r\r\n\r\n\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\tr.session_id = sp.spid\r\n\r\n\t\t\t\t\t\tAND r.request_id = sp.request_id\r\n\r\n\t\t\t\t) AS req\r\n\r\n\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t--Process inclusive filter\r\n\r\n\t\t\t\t\t1 =\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN @filter &lt;&gt; &#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\tCASE @filter_type\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN &#39;session&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(SMALLINT, @filter) = 0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tOR sp.spid = CONVERT(SMALLINT, @filter)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN 1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN &#39;program&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN sp.program_name LIKE @filter THEN 1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN &#39;login&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN sp.loginame LIKE @filter THEN 1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN &#39;host&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN sp.hostname LIKE @filter THEN 1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN &#39;database&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN DB_NAME(sp.dbid) LIKE @filter THEN 1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\tELSE 1\r\n\r\n\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t--Process exclusive filter\r\n\r\n\t\t\t\t\tAND 0 =\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN @not_filter &lt;&gt; &#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\tCASE @not_filter_type\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN &#39;session&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN sp.spid = CONVERT(SMALLINT, @not_filter) THEN 1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN &#39;program&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN sp.program_name LIKE @not_filter THEN 1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN &#39;login&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN sp.loginame LIKE @not_filter THEN 1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN &#39;host&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN sp.hostname LIKE @not_filter THEN 1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN &#39;database&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN DB_NAME(sp.dbid) LIKE @not_filter THEN 1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\tELSE 0\r\n\r\n\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\tAND \r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t@show_own_spid = 1\r\n\r\n\t\t\t\t\t\tOR sp.spid &lt;&gt; @@SPID\r\n\r\n\t\t\t\t\t)\r\n\r\n\t\t\t\t\tAND \r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t@show_system_spids = 1\r\n\r\n\t\t\t\t\t\tOR sp.hostprocess &gt; &#39;&#39;\r\n\r\n\t\t\t\t\t)\r\n\r\n\t\t\t\t\tAND sp.ecid = 0\r\n\r\n\t\t\t) AS s\r\n\r\n\t\t\tINNER HASH JOIN\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tSELECT\r\n\r\n\t\t\t\t\tx.resource_type,\r\n\r\n\t\t\t\t\tx.database_name,\r\n\r\n\t\t\t\t\tx.object_id,\r\n\r\n\t\t\t\t\tx.file_id,\r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN x.page_no = 1 OR x.page_no % 8088 = 0 THEN &#39;PFS&#39;\r\n\r\n\t\t\t\t\t\tWHEN x.page_no = 2 OR x.page_no % 511232 = 0 THEN &#39;GAM&#39;\r\n\r\n\t\t\t\t\t\tWHEN x.page_no = 3 OR x.page_no % 511233 = 0 THEN &#39;SGAM&#39;\r\n\r\n\t\t\t\t\t\tWHEN x.page_no = 6 OR x.page_no % 511238 = 0 THEN &#39;DCM&#39;\r\n\r\n\t\t\t\t\t\tWHEN x.page_no = 7 OR x.page_no % 511239 = 0 THEN &#39;BCM&#39;\r\n\r\n\t\t\t\t\t\tWHEN x.page_no IS NOT NULL THEN &#39;*&#39;\r\n\r\n\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\tEND AS page_type,\r\n\r\n\t\t\t\t\tx.hobt_id,\r\n\r\n\t\t\t\t\tx.allocation_unit_id,\r\n\r\n\t\t\t\t\tx.index_id,\r\n\r\n\t\t\t\t\tx.schema_id,\r\n\r\n\t\t\t\t\tx.principal_id,\r\n\r\n\t\t\t\t\tx.request_mode,\r\n\r\n\t\t\t\t\tx.request_status,\r\n\r\n\t\t\t\t\tx.session_id,\r\n\r\n\t\t\t\t\tx.request_id,\r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN COALESCE(x.object_id, x.file_id, x.hobt_id, x.allocation_unit_id, x.index_id, x.schema_id, x.principal_id) IS NULL THEN NULLIF(resource_description, &#39;&#39;)\r\n\r\n\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\tEND AS resource_description,\r\n\r\n\t\t\t\t\tCOUNT(*) AS request_count\r\n\r\n\t\t\t\tFROM\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tSELECT\r\n\r\n\t\t\t\t\t\ttl.resource_type +\r\n\r\n\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\tWHEN tl.resource_subtype = &#39;&#39; THEN &#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\tELSE &#39;.&#39; + tl.resource_subtype\r\n\r\n\t\t\t\t\t\t\tEND AS resource_type,\r\n\r\n\t\t\t\t\t\tCOALESCE(DB_NAME(tl.resource_database_id), N&#39;(null)&#39;) AS database_name,\r\n\r\n\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tINT,\r\n\r\n\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\tWHEN tl.resource_type = &#39;OBJECT&#39; THEN tl.resource_associated_entity_id\r\n\r\n\t\t\t\t\t\t\t\tWHEN tl.resource_description LIKE &#39;%object_id = %&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\ttl.resource_description, \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(CHARINDEX(&#39;object_id = &#39;, tl.resource_description) + 12), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\tCOALESCE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNULLIF\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCHARINDEX(&#39;,&#39;, tl.resource_description, CHARINDEX(&#39;object_id = &#39;, tl.resource_description) + 12),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tDATALENGTH(tl.resource_description)+1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t) - (CHARINDEX(&#39;object_id = &#39;, tl.resource_description) + 12)\r\n\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t) AS object_id,\r\n\r\n\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tINT,\r\n\r\n\t\t\t\t\t\t\tCASE \r\n\r\n\t\t\t\t\t\t\t\tWHEN tl.resource_type = &#39;FILE&#39; THEN CONVERT(INT, tl.resource_description)\r\n\r\n\t\t\t\t\t\t\t\tWHEN tl.resource_type IN (&#39;PAGE&#39;, &#39;EXTENT&#39;, &#39;RID&#39;) THEN LEFT(tl.resource_description, CHARINDEX(&#39;:&#39;, tl.resource_description)-1)\r\n\r\n\t\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t) AS file_id,\r\n\r\n\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tINT,\r\n\r\n\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\tWHEN tl.resource_type IN (&#39;PAGE&#39;, &#39;EXTENT&#39;, &#39;RID&#39;) THEN \r\n\r\n\t\t\t\t\t\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\ttl.resource_description, \r\n\r\n\t\t\t\t\t\t\t\t\t\tCHARINDEX(&#39;:&#39;, tl.resource_description) + 1, \r\n\r\n\t\t\t\t\t\t\t\t\t\tCOALESCE\r\n\r\n\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tNULLIF\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tCHARINDEX(&#39;:&#39;, tl.resource_description, CHARINDEX(&#39;:&#39;, tl.resource_description) + 1), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\tDATALENGTH(tl.resource_description)+1\r\n\r\n\t\t\t\t\t\t\t\t\t\t) - (CHARINDEX(&#39;:&#39;, tl.resource_description) + 1)\r\n\r\n\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t) AS page_no,\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN tl.resource_type IN (&#39;PAGE&#39;, &#39;KEY&#39;, &#39;RID&#39;, &#39;HOBT&#39;) THEN tl.resource_associated_entity_id\r\n\r\n\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\tEND AS hobt_id,\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN tl.resource_type = &#39;ALLOCATION_UNIT&#39; THEN tl.resource_associated_entity_id\r\n\r\n\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\tEND AS allocation_unit_id,\r\n\r\n\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tINT,\r\n\r\n\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\/*TODO: Deal with server principals*\/ \r\n\r\n\t\t\t\t\t\t\t\t\ttl.resource_subtype &lt;&gt; &#39;SERVER_PRINCIPAL&#39; \r\n\r\n\t\t\t\t\t\t\t\t\tAND tl.resource_description LIKE &#39;%index_id or stats_id = %&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\ttl.resource_description, \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(CHARINDEX(&#39;index_id or stats_id = &#39;, tl.resource_description) + 23), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\tCOALESCE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNULLIF\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCHARINDEX(&#39;,&#39;, tl.resource_description, CHARINDEX(&#39;index_id or stats_id = &#39;, tl.resource_description) + 23), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tDATALENGTH(tl.resource_description)+1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t) - (CHARINDEX(&#39;index_id or stats_id = &#39;, tl.resource_description) + 23)\r\n\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\t\tEND \r\n\r\n\t\t\t\t\t\t) AS index_id,\r\n\r\n\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tINT,\r\n\r\n\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\tWHEN tl.resource_description LIKE &#39;%schema_id = %&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\ttl.resource_description, \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(CHARINDEX(&#39;schema_id = &#39;, tl.resource_description) + 12), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\tCOALESCE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNULLIF\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCHARINDEX(&#39;,&#39;, tl.resource_description, CHARINDEX(&#39;schema_id = &#39;, tl.resource_description) + 12), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tDATALENGTH(tl.resource_description)+1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t) - (CHARINDEX(&#39;schema_id = &#39;, tl.resource_description) + 12)\r\n\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\t\tEND \r\n\r\n\t\t\t\t\t\t) AS schema_id,\r\n\r\n\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tINT,\r\n\r\n\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\tWHEN tl.resource_description LIKE &#39;%principal_id = %&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\ttl.resource_description, \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(CHARINDEX(&#39;principal_id = &#39;, tl.resource_description) + 15), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\tCOALESCE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNULLIF\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCHARINDEX(&#39;,&#39;, tl.resource_description, CHARINDEX(&#39;principal_id = &#39;, tl.resource_description) + 15), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t), \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tDATALENGTH(tl.resource_description)+1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t) - (CHARINDEX(&#39;principal_id = &#39;, tl.resource_description) + 15)\r\n\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t) AS principal_id,\r\n\r\n\t\t\t\t\t\ttl.request_mode,\r\n\r\n\t\t\t\t\t\ttl.request_status,\r\n\r\n\t\t\t\t\t\ttl.request_session_id AS session_id,\r\n\r\n\t\t\t\t\t\ttl.request_request_id AS request_id,\r\n\r\n\r\n\r\n\t\t\t\t\t\t\/*TODO: Applocks, other resource_descriptions*\/\r\n\r\n\t\t\t\t\t\tRTRIM(tl.resource_description) AS resource_description,\r\n\r\n\t\t\t\t\t\ttl.resource_associated_entity_id\r\n\r\n\t\t\t\t\t\t\/*********************************************\/\r\n\r\n\t\t\t\t\tFROM \r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\tSELECT \r\n\r\n\t\t\t\t\t\t\trequest_session_id,\r\n\r\n\t\t\t\t\t\t\tCONVERT(VARCHAR(120), resource_type) COLLATE Latin1_General_Bin2 AS resource_type,\r\n\r\n\t\t\t\t\t\t\tCONVERT(VARCHAR(120), resource_subtype) COLLATE Latin1_General_Bin2 AS resource_subtype,\r\n\r\n\t\t\t\t\t\t\tresource_database_id,\r\n\r\n\t\t\t\t\t\t\tCONVERT(VARCHAR(512), resource_description) COLLATE Latin1_General_Bin2 AS resource_description,\r\n\r\n\t\t\t\t\t\t\tresource_associated_entity_id,\r\n\r\n\t\t\t\t\t\t\tCONVERT(VARCHAR(120), request_mode) COLLATE Latin1_General_Bin2 AS request_mode,\r\n\r\n\t\t\t\t\t\t\tCONVERT(VARCHAR(120), request_status) COLLATE Latin1_General_Bin2 AS request_status,\r\n\r\n\t\t\t\t\t\t\trequest_request_id\r\n\r\n\t\t\t\t\t\tFROM sys.dm_tran_locks\r\n\r\n\t\t\t\t\t) AS tl\r\n\r\n\t\t\t\t) AS x\r\n\r\n\t\t\t\tGROUP BY\r\n\r\n\t\t\t\t\tx.resource_type,\r\n\r\n\t\t\t\t\tx.database_name,\r\n\r\n\t\t\t\t\tx.object_id,\r\n\r\n\t\t\t\t\tx.file_id,\r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN x.page_no = 1 OR x.page_no % 8088 = 0 THEN &#39;PFS&#39;\r\n\r\n\t\t\t\t\t\tWHEN x.page_no = 2 OR x.page_no % 511232 = 0 THEN &#39;GAM&#39;\r\n\r\n\t\t\t\t\t\tWHEN x.page_no = 3 OR x.page_no % 511233 = 0 THEN &#39;SGAM&#39;\r\n\r\n\t\t\t\t\t\tWHEN x.page_no = 6 OR x.page_no % 511238 = 0 THEN &#39;DCM&#39;\r\n\r\n\t\t\t\t\t\tWHEN x.page_no = 7 OR x.page_no % 511239 = 0 THEN &#39;BCM&#39;\r\n\r\n\t\t\t\t\t\tWHEN x.page_no IS NOT NULL THEN &#39;*&#39;\r\n\r\n\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\tEND,\r\n\r\n\t\t\t\t\tx.hobt_id,\r\n\r\n\t\t\t\t\tx.allocation_unit_id,\r\n\r\n\t\t\t\t\tx.index_id,\r\n\r\n\t\t\t\t\tx.schema_id,\r\n\r\n\t\t\t\t\tx.principal_id,\r\n\r\n\t\t\t\t\tx.request_mode,\r\n\r\n\t\t\t\t\tx.request_status,\r\n\r\n\t\t\t\t\tx.session_id,\r\n\r\n\t\t\t\t\tx.request_id,\r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN COALESCE(x.object_id, x.file_id, x.hobt_id, x.allocation_unit_id, x.index_id, x.schema_id, x.principal_id) IS NULL THEN NULLIF(resource_description, &#39;&#39;)\r\n\r\n\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\tEND\r\n\r\n\t\t\t) AS y ON\r\n\r\n\t\t\t\ty.session_id = s.session_id\r\n\r\n\t\t\t\tAND y.request_id = s.request_id\r\n\r\n\t\t\tOPTION (HASH GROUP);\r\n\r\n\r\n\r\n\t\t\t--Disable unnecessary autostats on the table\r\n\r\n\t\t\tCREATE STATISTICS s_database_name ON #locks (database_name)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_object_id ON #locks (object_id)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_hobt_id ON #locks (hobt_id)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_allocation_unit_id ON #locks (allocation_unit_id)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_index_id ON #locks (index_id)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_schema_id ON #locks (schema_id)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_principal_id ON #locks (principal_id)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_request_id ON #locks (request_id)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_start_time ON #locks (start_time)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_resource_type ON #locks (resource_type)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_object_name ON #locks (object_name)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_schema_name ON #locks (schema_name)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_page_type ON #locks (page_type)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_request_mode ON #locks (request_mode)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_request_status ON #locks (request_status)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_resource_description ON #locks (resource_description)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_index_name ON #locks (index_name)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_principal_name ON #locks (principal_name)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\tEND;\r\n\r\n\t\t\r\n\r\n\t\tDECLARE \r\n\r\n\t\t\t@sql VARCHAR(MAX), \r\n\r\n\t\t\t@sql_n NVARCHAR(MAX);\r\n\r\n\r\n\r\n\t\tSET @sql = \r\n\r\n\t\t\tCONVERT(VARCHAR(MAX), &#39;&#39;) +\r\n\r\n\t\t\t&#39;DECLARE @blocker BIT;\r\n\r\n\t\t\tSET @blocker = 0;\r\n\r\n\t\t\tDECLARE @i INT;\r\n\r\n\t\t\tSET @i = 2147483647;\r\n\r\n\r\n\r\n\t\t\tDECLARE @sessions TABLE\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tsession_id SMALLINT NOT NULL,\r\n\r\n\t\t\t\trequest_id INT NOT NULL,\r\n\r\n\t\t\t\tlogin_time DATETIME,\r\n\r\n\t\t\t\tlast_request_end_time DATETIME,\r\n\r\n\t\t\t\tstatus VARCHAR(30),\r\n\r\n\t\t\t\tstatement_start_offset INT,\r\n\r\n\t\t\t\tstatement_end_offset INT,\r\n\r\n\t\t\t\tsql_handle BINARY(20),\r\n\r\n\t\t\t\thost_name NVARCHAR(128),\r\n\r\n\t\t\t\tlogin_name NVARCHAR(128),\r\n\r\n\t\t\t\tprogram_name NVARCHAR(128),\r\n\r\n\t\t\t\tdatabase_id SMALLINT,\r\n\r\n\t\t\t\tmemory_usage INT,\r\n\r\n\t\t\t\topen_tran_count SMALLINT, \r\n\r\n\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t@get_task_info &lt;&gt; 0 \r\n\r\n\t\t\t\t\t\tOR @find_block_leaders = 1 \r\n\r\n\t\t\t\t\t) THEN\r\n\r\n\t\t\t\t\t\t&#39;wait_type NVARCHAR(32),\r\n\r\n\t\t\t\t\t\twait_resource NVARCHAR(256),\r\n\r\n\t\t\t\t\t\twait_time BIGINT, \r\n\r\n\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\tEND +\r\n\r\n\t\t\t\t&#39;blocked SMALLINT,\r\n\r\n\t\t\t\tis_user_process BIT,\r\n\r\n\t\t\t\tcmd VARCHAR(32),\r\n\r\n\t\t\t\tPRIMARY KEY CLUSTERED (session_id, request_id) WITH (IGNORE_DUP_KEY = ON)\r\n\r\n\t\t\t);\r\n\r\n\r\n\r\n\t\t\tDECLARE @blockers TABLE\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tsession_id INT NOT NULL PRIMARY KEY\r\n\r\n\t\t\t);\r\n\r\n\r\n\r\n\t\t\tBLOCKERS:;\r\n\r\n\r\n\r\n\t\t\tINSERT @sessions\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tsession_id,\r\n\r\n\t\t\t\trequest_id,\r\n\r\n\t\t\t\tlogin_time,\r\n\r\n\t\t\t\tlast_request_end_time,\r\n\r\n\t\t\t\tstatus,\r\n\r\n\t\t\t\tstatement_start_offset,\r\n\r\n\t\t\t\tstatement_end_offset,\r\n\r\n\t\t\t\tsql_handle,\r\n\r\n\t\t\t\thost_name,\r\n\r\n\t\t\t\tlogin_name,\r\n\r\n\t\t\t\tprogram_name,\r\n\r\n\t\t\t\tdatabase_id,\r\n\r\n\t\t\t\tmemory_usage,\r\n\r\n\t\t\t\topen_tran_count, \r\n\r\n\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t@get_task_info &lt;&gt; 0\r\n\r\n\t\t\t\t\t\tOR @find_block_leaders = 1 \r\n\r\n\t\t\t\t\t) THEN\r\n\r\n\t\t\t\t\t\t&#39;wait_type,\r\n\r\n\t\t\t\t\t\twait_resource,\r\n\r\n\t\t\t\t\t\twait_time, \r\n\r\n\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\tEND +\r\n\r\n\t\t\t\t&#39;blocked,\r\n\r\n\t\t\t\tis_user_process,\r\n\r\n\t\t\t\tcmd \r\n\r\n\t\t\t)\r\n\r\n\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\tspy.session_id,\r\n\r\n\t\t\t\tspy.request_id,\r\n\r\n\t\t\t\tspy.login_time,\r\n\r\n\t\t\t\tspy.last_request_end_time,\r\n\r\n\t\t\t\tspy.status,\r\n\r\n\t\t\t\tspy.statement_start_offset,\r\n\r\n\t\t\t\tspy.statement_end_offset,\r\n\r\n\t\t\t\tspy.sql_handle,\r\n\r\n\t\t\t\tspy.host_name,\r\n\r\n\t\t\t\tspy.login_name,\r\n\r\n\t\t\t\tspy.program_name,\r\n\r\n\t\t\t\tspy.database_id,\r\n\r\n\t\t\t\tspy.memory_usage,\r\n\r\n\t\t\t\tspy.open_tran_count,\r\n\r\n\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t@get_task_info &lt;&gt; 0  \r\n\r\n\t\t\t\t\t\tOR @find_block_leaders = 1 \r\n\r\n\t\t\t\t\t) THEN\r\n\r\n\t\t\t\t\t\t&#39;spy.wait_type,\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\tspy.wait_type LIKE N&#39;&#39;PAGE%LATCH_%&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\tOR spy.wait_type = N&#39;&#39;CXPACKET&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\tOR spy.wait_type LIKE N&#39;&#39;LATCH[_]%&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\tOR spy.wait_type = N&#39;&#39;OLEDB&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\tspy.wait_resource\r\n\r\n\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\tEND AS wait_resource,\r\n\r\n\t\t\t\t\t\tspy.wait_time, \r\n\r\n\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\tEND +\r\n\r\n\t\t\t\t&#39;spy.blocked,\r\n\r\n\t\t\t\tspy.is_user_process,\r\n\r\n\t\t\t\tspy.cmd\r\n\r\n\t\t\tFROM\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\tspx.*, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t@get_task_info &lt;&gt; 0 \r\n\r\n\t\t\t\t\t\t\tOR @find_block_leaders = 1 \r\n\r\n\t\t\t\t\t\t) THEN\r\n\r\n\t\t\t\t\t\t\t&#39;ROW_NUMBER() OVER\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tPARTITION BY\r\n\r\n\t\t\t\t\t\t\t\t\tspx.session_id,\r\n\r\n\t\t\t\t\t\t\t\t\tspx.request_id\r\n\r\n\t\t\t\t\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN spx.wait_type LIKE N&#39;&#39;LCK[_]%&#39;&#39; THEN \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t1\r\n\r\n\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t99\r\n\r\n\t\t\t\t\t\t\t\t\tEND,\r\n\r\n\t\t\t\t\t\t\t\t\tspx.wait_time DESC,\r\n\r\n\t\t\t\t\t\t\t\t\tspx.blocked DESC\r\n\r\n\t\t\t\t\t\t\t) AS r \r\n\r\n\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t\t&#39;1 AS r \r\n\r\n\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\tEND +\r\n\r\n\t\t\t\t&#39;FROM\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\tsp0.session_id,\r\n\r\n\t\t\t\t\t\tsp0.request_id,\r\n\r\n\t\t\t\t\t\tsp0.login_time,\r\n\r\n\t\t\t\t\t\tsp0.last_request_end_time,\r\n\r\n\t\t\t\t\t\tLOWER(sp0.status) AS status,\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN sp0.cmd = &#39;&#39;CREATE INDEX&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t0\r\n\r\n\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\tsp0.stmt_start\r\n\r\n\t\t\t\t\t\tEND AS statement_start_offset,\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN sp0.cmd = N&#39;&#39;CREATE INDEX&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t-1\r\n\r\n\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\tCOALESCE(NULLIF(sp0.stmt_end, 0), -1)\r\n\r\n\t\t\t\t\t\tEND AS statement_end_offset,\r\n\r\n\t\t\t\t\t\tsp0.sql_handle,\r\n\r\n\t\t\t\t\t\tsp0.host_name,\r\n\r\n\t\t\t\t\t\tsp0.login_name,\r\n\r\n\t\t\t\t\t\tsp0.program_name,\r\n\r\n\t\t\t\t\t\tsp0.database_id,\r\n\r\n\t\t\t\t\t\tsp0.memory_usage,\r\n\r\n\t\t\t\t\t\tsp0.open_tran_count, \r\n\r\n\t\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t@get_task_info &lt;&gt; 0 \r\n\r\n\t\t\t\t\t\t\t\tOR @find_block_leaders = 1 \r\n\r\n\t\t\t\t\t\t\t) THEN\r\n\r\n\t\t\t\t\t\t\t\t&#39;CASE\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN sp0.wait_time &gt; 0 AND sp0.wait_type &lt;&gt; N&#39;&#39;CXPACKET&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tsp0.wait_type\r\n\r\n\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\tEND AS wait_type,\r\n\r\n\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN sp0.wait_time &gt; 0 AND sp0.wait_type &lt;&gt; N&#39;&#39;CXPACKET&#39;&#39; THEN \r\n\r\n\t\t\t\t\t\t\t\t\t\tsp0.wait_resource\r\n\r\n\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\tEND AS wait_resource,\r\n\r\n\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN sp0.wait_type &lt;&gt; N&#39;&#39;CXPACKET&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tsp0.wait_time\r\n\r\n\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t0\r\n\r\n\t\t\t\t\t\t\t\tEND AS wait_time, \r\n\r\n\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t&#39;sp0.blocked,\r\n\r\n\t\t\t\t\t\tsp0.is_user_process,\r\n\r\n\t\t\t\t\t\tsp0.cmd\r\n\r\n\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\tsp1.session_id,\r\n\r\n\t\t\t\t\t\t\tsp1.request_id,\r\n\r\n\t\t\t\t\t\t\tsp1.login_time,\r\n\r\n\t\t\t\t\t\t\tsp1.last_request_end_time,\r\n\r\n\t\t\t\t\t\t\tsp1.status,\r\n\r\n\t\t\t\t\t\t\tsp1.cmd,\r\n\r\n\t\t\t\t\t\t\tsp1.stmt_start,\r\n\r\n\t\t\t\t\t\t\tsp1.stmt_end,\r\n\r\n\t\t\t\t\t\t\tMAX(NULLIF(sp1.sql_handle, 0x00)) OVER (PARTITION BY sp1.session_id, sp1.request_id) AS sql_handle,\r\n\r\n\t\t\t\t\t\t\tsp1.host_name,\r\n\r\n\t\t\t\t\t\t\tMAX(sp1.login_name) OVER (PARTITION BY sp1.session_id, sp1.request_id) AS login_name,\r\n\r\n\t\t\t\t\t\t\tsp1.program_name,\r\n\r\n\t\t\t\t\t\t\tsp1.database_id,\r\n\r\n\t\t\t\t\t\t\tMAX(sp1.memory_usage)  OVER (PARTITION BY sp1.session_id, sp1.request_id) AS memory_usage,\r\n\r\n\t\t\t\t\t\t\tMAX(sp1.open_tran_count)  OVER (PARTITION BY sp1.session_id, sp1.request_id) AS open_tran_count,\r\n\r\n\t\t\t\t\t\t\tsp1.wait_type,\r\n\r\n\t\t\t\t\t\t\tsp1.wait_resource,\r\n\r\n\t\t\t\t\t\t\tsp1.wait_time,\r\n\r\n\t\t\t\t\t\t\tsp1.blocked,\r\n\r\n\t\t\t\t\t\t\tsp1.hostprocess,\r\n\r\n\t\t\t\t\t\t\tsp1.is_user_process\r\n\r\n\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\tsp2.spid AS session_id,\r\n\r\n\t\t\t\t\t\t\t\tCASE sp2.status\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN &#39;&#39;sleeping&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCONVERT(INT, 0)\r\n\r\n\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\tsp2.request_id\r\n\r\n\t\t\t\t\t\t\t\tEND AS request_id,\r\n\r\n\t\t\t\t\t\t\t\tMAX(sp2.login_time) AS login_time,\r\n\r\n\t\t\t\t\t\t\t\tMAX(sp2.last_batch) AS last_request_end_time,\r\n\r\n\t\t\t\t\t\t\t\tMAX(CONVERT(VARCHAR(30), RTRIM(sp2.status)) COLLATE Latin1_General_Bin2) AS status,\r\n\r\n\t\t\t\t\t\t\t\tMAX(CONVERT(VARCHAR(32), RTRIM(sp2.cmd)) COLLATE Latin1_General_Bin2) AS cmd,\r\n\r\n\t\t\t\t\t\t\t\tMAX(sp2.stmt_start) AS stmt_start,\r\n\r\n\t\t\t\t\t\t\t\tMAX(sp2.stmt_end) AS stmt_end,\r\n\r\n\t\t\t\t\t\t\t\tMAX(sp2.sql_handle) AS sql_handle,\r\n\r\n\t\t\t\t\t\t\t\tMAX(CONVERT(sysname, RTRIM(sp2.hostname)) COLLATE SQL_Latin1_General_CP1_CI_AS) AS host_name,\r\n\r\n\t\t\t\t\t\t\t\tMAX(CONVERT(sysname, RTRIM(sp2.loginame)) COLLATE SQL_Latin1_General_CP1_CI_AS) AS login_name,\r\n\r\n\t\t\t\t\t\t\t\tMAX\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN blk.queue_id IS NOT NULL THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;Service Broker\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tdatabase_id: &#39;&#39; + CONVERT(NVARCHAR, blk.database_id) +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39; queue_id: &#39;&#39; + CONVERT(NVARCHAR, blk.queue_id)\r\n\r\n\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tsysname,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tRTRIM(sp2.program_name)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\tEND COLLATE SQL_Latin1_General_CP1_CI_AS\r\n\r\n\t\t\t\t\t\t\t\t) AS program_name,\r\n\r\n\t\t\t\t\t\t\t\tMAX(sp2.dbid) AS database_id,\r\n\r\n\t\t\t\t\t\t\t\tMAX(sp2.memusage) AS memory_usage,\r\n\r\n\t\t\t\t\t\t\t\tMAX(sp2.open_tran) AS open_tran_count,\r\n\r\n\t\t\t\t\t\t\t\tRTRIM(sp2.lastwaittype) AS wait_type,\r\n\r\n\t\t\t\t\t\t\t\tRTRIM(sp2.waitresource) AS wait_resource,\r\n\r\n\t\t\t\t\t\t\t\tMAX(sp2.waittime) AS wait_time,\r\n\r\n\t\t\t\t\t\t\t\tCOALESCE(NULLIF(sp2.blocked, sp2.spid), 0) AS blocked,\r\n\r\n\t\t\t\t\t\t\t\tMAX\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN blk.session_id = sp2.spid THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;&#39;blocker&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tRTRIM(sp2.hostprocess)\r\n\r\n\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t) AS hostprocess,\r\n\r\n\t\t\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tBIT,\r\n\r\n\t\t\t\t\t\t\t\t\tMAX\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN sp2.hostprocess &gt; &#39;&#39;&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t0\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t) AS is_user_process\r\n\r\n\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\tsession_id,\r\n\r\n\t\t\t\t\t\t\t\t\tCONVERT(INT, NULL) AS queue_id,\r\n\r\n\t\t\t\t\t\t\t\t\tCONVERT(INT, NULL) AS database_id\r\n\r\n\t\t\t\t\t\t\t\tFROM @blockers\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\tUNION ALL\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\tCONVERT(SMALLINT, 0),\r\n\r\n\t\t\t\t\t\t\t\t\tCONVERT(INT, NULL) AS queue_id,\r\n\r\n\t\t\t\t\t\t\t\t\tCONVERT(INT, NULL) AS database_id\r\n\r\n\t\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\t\t@blocker = 0\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\tUNION ALL\r\n\r\n\r\n\r\n\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\tCONVERT(SMALLINT, spid),\r\n\r\n\t\t\t\t\t\t\t\t\tqueue_id,\r\n\r\n\t\t\t\t\t\t\t\t\tdatabase_id\r\n\r\n\t\t\t\t\t\t\t\tFROM sys.dm_broker_activated_tasks\r\n\r\n\t\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\t\t@blocker = 0\r\n\r\n\t\t\t\t\t\t\t) AS blk\r\n\r\n\t\t\t\t\t\t\tINNER JOIN sys.sysprocesses AS sp2 ON\r\n\r\n\t\t\t\t\t\t\t\tsp2.spid = blk.session_id\r\n\r\n\t\t\t\t\t\t\t\tOR\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tblk.session_id = 0\r\n\r\n\t\t\t\t\t\t\t\t\tAND @blocker = 0\r\n\r\n\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\t\t\t\tCASE \r\n\r\n\t\t\t\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t@get_task_info = 0 \r\n\r\n\t\t\t\t\t\t\t\t\tAND @find_block_leaders = 0\r\n\r\n\t\t\t\t\t\t\t\t) THEN\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;WHERE\r\n\r\n\t\t\t\t\t\t\t\t\t\tsp2.ecid = 0 \r\n\r\n\t\t\t\t\t\t\t\t\t&#39; \r\n\r\n\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\t&#39;GROUP BY\r\n\r\n\t\t\t\t\t\t\t\tsp2.spid,\r\n\r\n\t\t\t\t\t\t\t\tCASE sp2.status\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN &#39;&#39;sleeping&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCONVERT(INT, 0)\r\n\r\n\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\tsp2.request_id\r\n\r\n\t\t\t\t\t\t\t\tEND,\r\n\r\n\t\t\t\t\t\t\t\tRTRIM(sp2.lastwaittype),\r\n\r\n\t\t\t\t\t\t\t\tRTRIM(sp2.waitresource),\r\n\r\n\t\t\t\t\t\t\t\tCOALESCE(NULLIF(sp2.blocked, sp2.spid), 0)\r\n\r\n\t\t\t\t\t\t) AS sp1\r\n\r\n\t\t\t\t\t) AS sp0\r\n\r\n\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t@blocker = 1\r\n\r\n\t\t\t\t\t\tOR\r\n\r\n\t\t\t\t\t\t(1=1 \r\n\r\n\t\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\t\t\t\t--inclusive filter\r\n\r\n\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\tWHEN @filter &lt;&gt; &#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\tCASE @filter_type\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN &#39;session&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHEN CONVERT(SMALLINT, @filter) &lt;&gt; 0 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;AND sp0.session_id = CONVERT(SMALLINT, @filter) \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN &#39;program&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;AND sp0.program_name LIKE @filter \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN &#39;login&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;AND sp0.login_name LIKE @filter \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN &#39;host&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;AND sp0.host_name LIKE @filter \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN &#39;database&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;AND DB_NAME(sp0.database_id) LIKE @filter \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\t--exclusive filter\r\n\r\n\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\tWHEN @not_filter &lt;&gt; &#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\tCASE @not_filter_type\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN &#39;session&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tWHEN CONVERT(SMALLINT, @not_filter) &lt;&gt; 0 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;AND sp0.session_id &lt;&gt; CONVERT(SMALLINT, @not_filter) \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN &#39;program&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;AND sp0.program_name NOT LIKE @not_filter \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN &#39;login&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;AND sp0.login_name NOT LIKE @not_filter \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN &#39;host&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;AND sp0.host_name NOT LIKE @not_filter \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN &#39;database&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;AND DB_NAME(sp0.database_id) NOT LIKE @not_filter \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\tCASE @show_own_spid\r\n\r\n\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND sp0.session_id &lt;&gt; @@spid \r\n\r\n\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\tCASE \r\n\r\n\t\t\t\t\t\t\t\tWHEN @show_system_spids = 0 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND sp0.hostprocess &gt; &#39;&#39;&#39;&#39; \r\n\r\n\t\t\t\t\t\t\t\t\t&#39; \r\n\r\n\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\tCASE @show_sleeping_spids\r\n\r\n\t\t\t\t\t\t\t\tWHEN 0 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND sp0.status &lt;&gt; &#39;&#39;sleeping&#39;&#39; \r\n\r\n\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tsp0.status &lt;&gt; &#39;&#39;sleeping&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tOR sp0.open_tran_count &gt; 0\r\n\r\n\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t&#39;)\r\n\r\n\t\t\t\t) AS spx\r\n\r\n\t\t\t) AS spy\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\tspy.r = 1; \r\n\r\n\t\t\t&#39; + \r\n\r\n\t\t\tCASE @recursion\r\n\r\n\t\t\t\tWHEN 1 THEN \r\n\r\n\t\t\t\t\t&#39;IF @@ROWCOUNT &gt; 0\r\n\r\n\t\t\t\t\tBEGIN;\r\n\r\n\t\t\t\t\t\tINSERT @blockers\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tsession_id\r\n\r\n\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\tblocked\r\n\r\n\t\t\t\t\t\tFROM @sessions\r\n\r\n\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\tNULLIF(blocked, 0) IS NOT NULL\r\n\r\n\r\n\r\n\t\t\t\t\t\tEXCEPT\r\n\r\n\r\n\r\n\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\tsession_id\r\n\r\n\t\t\t\t\t\tFROM @sessions; \r\n\r\n\t\t\t\t\t\t&#39; +\r\n\r\n\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t@get_task_info &gt; 0\r\n\r\n\t\t\t\t\t\t\t\tOR @find_block_leaders = 1\r\n\r\n\t\t\t\t\t\t\t) THEN\r\n\r\n\t\t\t\t\t\t\t\t&#39;IF @@ROWCOUNT &gt; 0\r\n\r\n\t\t\t\t\t\t\t\tBEGIN;\r\n\r\n\t\t\t\t\t\t\t\t\tSET @blocker = 1;\r\n\r\n\t\t\t\t\t\t\t\t\tGOTO BLOCKERS;\r\n\r\n\t\t\t\t\t\t\t\tEND; \r\n\r\n\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t&#39;END; \r\n\r\n\t\t\t\t\t&#39;\r\n\r\n\t\t\t\tELSE \r\n\r\n\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\tEND +\r\n\r\n\t\t\t&#39;SELECT TOP(@i)\r\n\r\n\t\t\t\t@recursion AS recursion,\r\n\r\n\t\t\t\tx.session_id,\r\n\r\n\t\t\t\tx.request_id,\r\n\r\n\t\t\t\tDENSE_RANK() OVER\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\t\tx.session_id\r\n\r\n\t\t\t\t) AS session_number,\r\n\r\n\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN @output_column_list LIKE &#39;%|[dd hh:mm:ss.mss|]%&#39; ESCAPE &#39;|&#39; THEN \r\n\r\n\t\t\t\t\t\t&#39;x.elapsed_time &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;0 &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS elapsed_time, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t@output_column_list LIKE &#39;%|[dd hh:mm:ss.mss (avg)|]%&#39; ESCAPE &#39;|&#39; OR \r\n\r\n\t\t\t\t\t\t\t@output_column_list LIKE &#39;%|[avg_elapsed_time|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.avg_elapsed_time \/ 1000 &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS avg_elapsed_time, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[physical_io|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[physical_io_delta|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.physical_io &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS physical_io, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[reads|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[reads_delta|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.reads &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;0 &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS reads, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[physical_reads|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[physical_reads_delta|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.physical_reads &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;0 &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS physical_reads, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[writes|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[writes_delta|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.writes &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;0 &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS writes, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[tempdb_allocations|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[tempdb_allocations_delta|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.tempdb_allocations &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;0 &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS tempdb_allocations, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[tempdb_current|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[tempdb_current_delta|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.tempdb_current &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;0 &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS tempdb_current, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[CPU|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[CPU_delta|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t\tTHEN\r\n\r\n\t\t\t\t\t\t\t\t&#39;x.CPU &#39;\r\n\r\n\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t&#39;0 &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS CPU, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[CPU_delta|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tAND @get_task_info = 2\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.thread_CPU_snapshot &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;0 &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS thread_CPU_snapshot, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[context_switches|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[context_switches_delta|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.context_switches &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS context_switches, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[used_memory|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[used_memory_delta|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.used_memory &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;0 &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS used_memory, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[tasks|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.tasks &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS tasks, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t@output_column_list LIKE &#39;%|[status|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[sql_command|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.status &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;&#39;&#39;&#39;&#39; &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS status, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[wait_info|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\tCASE @get_task_info\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN 2 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;COALESCE(x.task_wait_info, x.sys_wait_info) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;x.sys_wait_info &#39;\r\n\r\n\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS wait_info, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t@output_column_list LIKE &#39;%|[tran_start_time|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[tran_log_writes|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.transaction_id &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS transaction_id, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[open_tran_count|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.open_tran_count &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS open_tran_count, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[sql_text|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.sql_handle &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS sql_handle, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t@output_column_list LIKE &#39;%|[sql_text|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[query_plan|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.statement_start_offset &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS statement_start_offset, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t@output_column_list LIKE &#39;%|[sql_text|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\t\tOR @output_column_list LIKE &#39;%|[query_plan|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.statement_end_offset &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS statement_end_offset, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\t&#39;NULL AS sql_text, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[query_plan|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.plan_handle &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS plan_handle, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[blocking_session_id|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;NULLIF(x.blocking_session_id, 0) &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS blocking_session_id, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[percent_complete|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.percent_complete &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS percent_complete, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[host_name|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.host_name &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;&#39;&#39;&#39;&#39; &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS host_name, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[login_name|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.login_name &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;&#39;&#39;&#39;&#39; &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS login_name, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[database_name|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;DB_NAME(x.database_id) &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS database_name, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[program_name|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t&#39;x.program_name &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;&#39;&#39;&#39;&#39; &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS program_name, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[additional_info|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN\r\n\r\n\t\t\t\t\t\t\t\t&#39;(\r\n\r\n\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\tx.text_size,\r\n\r\n\t\t\t\t\t\t\t\t\t\tx.language,\r\n\r\n\t\t\t\t\t\t\t\t\t\tx.date_format,\r\n\r\n\t\t\t\t\t\t\t\t\t\tx.date_first,\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE x.quoted_identifier\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 0 THEN &#39;&#39;OFF&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;&#39;ON&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS quoted_identifier,\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE x.arithabort\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 0 THEN &#39;&#39;OFF&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;&#39;ON&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS arithabort,\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE x.ansi_null_dflt_on\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 0 THEN &#39;&#39;OFF&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;&#39;ON&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS ansi_null_dflt_on,\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE x.ansi_defaults\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 0 THEN &#39;&#39;OFF&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;&#39;ON&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS ansi_defaults,\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE x.ansi_warnings\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 0 THEN &#39;&#39;OFF&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;&#39;ON&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS ansi_warnings,\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE x.ansi_padding\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 0 THEN &#39;&#39;OFF&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;&#39;ON&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS ansi_padding,\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE ansi_nulls\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 0 THEN &#39;&#39;OFF&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;&#39;ON&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS ansi_nulls,\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE x.concat_null_yields_null\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 0 THEN &#39;&#39;OFF&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;&#39;ON&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS concat_null_yields_null,\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE x.transaction_isolation_level\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 0 THEN &#39;&#39;Unspecified&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;&#39;ReadUncomitted&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 2 THEN &#39;&#39;ReadCommitted&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 3 THEN &#39;&#39;Repeatable&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 4 THEN &#39;&#39;Serializable&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 5 THEN &#39;&#39;Snapshot&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS transaction_isolation_level,\r\n\r\n\t\t\t\t\t\t\t\t\t\tx.lock_timeout,\r\n\r\n\t\t\t\t\t\t\t\t\t\tx.deadlock_priority,\r\n\r\n\t\t\t\t\t\t\t\t\t\tx.row_count,\r\n\r\n\t\t\t\t\t\t\t\t\t\tx.command_type, \r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN @output_column_list LIKE &#39;%|[program_name|]%&#39; ESCAPE &#39;|&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(uniqueidentifier, CONVERT(XML, &#39;&#39;&#39;&#39;).value(&#39;&#39;xs:hexBinary( substring(sql:column(&quot;agent_info.job_id_string&quot;), 0) )&#39;&#39;, &#39;&#39;binary(16)&#39;&#39;)) AS job_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tagent_info.step_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPATH(&#39;&#39;job_name&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPATH(&#39;&#39;step_name&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING(x.program_name, CHARINDEX(&#39;&#39;0x&#39;&#39;, x.program_name) + 2, 32) AS job_id_string,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING(x.program_name, CHARINDEX(&#39;&#39;: Step &#39;&#39;, x.program_name) + 7, CHARINDEX(&#39;&#39;)&#39;&#39;, x.program_name, CHARINDEX(&#39;&#39;: Step &#39;&#39;, x.program_name)) - (CHARINDEX(&#39;&#39;: Step &#39;&#39;, x.program_name) + 7)) AS step_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tx.program_name LIKE N&#39;&#39;SQLAgent - TSQL JobStep (Job 0x%&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) AS agent_info\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tPATH(&#39;&#39;agent_job_info&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN @get_task_info = 2 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;CONVERT(XML, x.block_info) AS block_info, \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;x.host_process_id \r\n\r\n\t\t\t\t\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\t\t\t\t\tPATH(&#39;&#39;additional_info&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t\t\t\t\t) &#39;\r\n\r\n\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS additional_info, \r\n\r\n\t\t\t\tx.start_time, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE\r\n\r\n\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t@output_column_list LIKE &#39;%|[login_time|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t\tTHEN\r\n\r\n\t\t\t\t\t\t\t\t&#39;x.login_time &#39;\r\n\r\n\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t&#39;NULL &#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t\t\t&#39;AS login_time, \r\n\r\n\t\t\t\tx.last_request_start_time\r\n\r\n\t\t\tFROM\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\ty.*,\r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN DATEDIFF(day, y.start_time, GETDATE()) &gt; 24 THEN\r\n\r\n\t\t\t\t\t\t\tDATEDIFF(second, GETDATE(), y.start_time)\r\n\r\n\t\t\t\t\t\tELSE DATEDIFF(ms, y.start_time, GETDATE())\r\n\r\n\t\t\t\t\tEND AS elapsed_time,\r\n\r\n\t\t\t\t\tCOALESCE(tempdb_info.tempdb_allocations, 0) AS tempdb_allocations,\r\n\r\n\t\t\t\t\tCOALESCE\r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN tempdb_info.tempdb_current &lt; 0 THEN 0\r\n\r\n\t\t\t\t\t\t\tELSE tempdb_info.tempdb_current\r\n\r\n\t\t\t\t\t\tEND,\r\n\r\n\t\t\t\t\t\t0\r\n\r\n\t\t\t\t\t) AS tempdb_current, \r\n\r\n\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t@get_task_info &lt;&gt; 0\r\n\r\n\t\t\t\t\t\t\t\tOR @find_block_leaders = 1\r\n\r\n\t\t\t\t\t\t\t) THEN\r\n\r\n\t\t\t\t\t\t\t\t&#39;N&#39;&#39;(&#39;&#39; + CONVERT(NVARCHAR, y.wait_duration_ms) + N&#39;&#39;ms)&#39;&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\ty.wait_type +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN y.wait_type LIKE N&#39;&#39;PAGE%LATCH_%&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;:&#39;&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tCOALESCE(DB_NAME(CONVERT(INT, LEFT(y.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, y.resource_description) - 1))), N&#39;&#39;(null)&#39;&#39;) +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;:&#39;&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING(y.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, y.resource_description) + 1, LEN(y.resource_description) - CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(y.resource_description)) - CHARINDEX(N&#39;&#39;:&#39;&#39;, y.resource_description)) +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;(&#39;&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(y.resource_description)) - 1)) = 1 OR\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(y.resource_description)) - 1)) % 8088 = 0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;PFS&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(y.resource_description)) - 1)) = 2 OR\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(y.resource_description)) - 1)) % 511232 = 0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;GAM&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(y.resource_description)) - 1)) = 3 OR\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(y.resource_description)) - 1)) % 511233 = 0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;SGAM&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(y.resource_description)) - 1)) = 6 OR\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(y.resource_description)) - 1)) % 511238 = 0 \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;DCM&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(y.resource_description)) - 1)) = 7 OR\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(y.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(y.resource_description)) - 1)) % 511239 = 0 \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;BCM&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;*&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;)&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN y.wait_type = N&#39;&#39;CXPACKET&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;:&#39;&#39; + SUBSTRING(y.resource_description, CHARINDEX(N&#39;&#39;nodeId&#39;&#39;, y.resource_description) + 7, 4)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN y.wait_type LIKE N&#39;&#39;LATCH[_]%&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39; [&#39;&#39; + LEFT(y.resource_description, COALESCE(NULLIF(CHARINDEX(N&#39;&#39; &#39;&#39;, y.resource_description), 0), LEN(y.resource_description) + 1) - 1) + N&#39;&#39;]&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ty.wait_type = N&#39;&#39;OLEDB&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tAND y.resource_description LIKE N&#39;&#39;%(SPID=%)&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;[&#39;&#39; + LEFT(y.resource_description, CHARINDEX(N&#39;&#39;(SPID=&#39;&#39;, y.resource_description) - 2) +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;:&#39;&#39; + SUBSTRING(y.resource_description, CHARINDEX(N&#39;&#39;(SPID=&#39;&#39;, y.resource_description) + 6, CHARINDEX(N&#39;&#39;)&#39;&#39;, y.resource_description, (CHARINDEX(N&#39;&#39;(SPID=&#39;&#39;, y.resource_description) + 6)) - (CHARINDEX(N&#39;&#39;(SPID=&#39;&#39;, y.resource_description) \r\n+ 6)) + &#39;&#39;]&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND COLLATE Latin1_General_Bin2 AS sys_wait_info, \r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN @get_task_info = 2 THEN\r\n\r\n\t\t\t\t\t\t\t\t&#39;tasks.physical_io,\r\n\r\n\t\t\t\t\t\t\t\ttasks.context_switches,\r\n\r\n\t\t\t\t\t\t\t\ttasks.tasks,\r\n\r\n\t\t\t\t\t\t\t\ttasks.block_info,\r\n\r\n\t\t\t\t\t\t\t\ttasks.wait_info AS task_wait_info,\r\n\r\n\t\t\t\t\t\t\t\ttasks.thread_CPU_snapshot,\r\n\r\n\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t&#39;&#39; \r\n\r\n\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\tCASE \r\n\r\n\t\t\t\t\t\tWHEN NOT (@get_avg_time = 1 AND @recursion = 1) THEN\r\n\r\n\t\t\t\t\t\t\t&#39;CONVERT(INT, NULL) &#39;\r\n\r\n\t\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t\t&#39;qs.total_elapsed_time \/ qs.execution_count &#39;\r\n\r\n\t\t\t\t\tEND + \r\n\r\n\t\t\t\t\t\t&#39;AS avg_elapsed_time \r\n\r\n\t\t\t\tFROM\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\tsp.session_id,\r\n\r\n\t\t\t\t\t\tsp.request_id,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.logical_reads, s.logical_reads) AS reads,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.reads, s.reads) AS physical_reads,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.writes, s.writes) AS writes,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.CPU_time, s.CPU_time) AS CPU,\r\n\r\n\t\t\t\t\t\tsp.memory_usage + COALESCE(r.granted_query_memory, 0) AS used_memory,\r\n\r\n\t\t\t\t\t\tLOWER(sp.status) AS status,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.sql_handle, sp.sql_handle) AS sql_handle,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.statement_start_offset, sp.statement_start_offset) AS statement_start_offset,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.statement_end_offset, sp.statement_end_offset) AS statement_end_offset,\r\n\r\n\t\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t@get_task_info &lt;&gt; 0\r\n\r\n\t\t\t\t\t\t\t\tOR @find_block_leaders = 1 \r\n\r\n\t\t\t\t\t\t\t) THEN\r\n\r\n\t\t\t\t\t\t\t\t&#39;sp.wait_type COLLATE Latin1_General_Bin2 AS wait_type,\r\n\r\n\t\t\t\t\t\t\t\tsp.wait_resource COLLATE Latin1_General_Bin2 AS resource_description,\r\n\r\n\t\t\t\t\t\t\t\tsp.wait_time AS wait_duration_ms, \r\n\r\n\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t&#39;NULLIF(sp.blocked, 0) AS blocking_session_id,\r\n\r\n\t\t\t\t\t\tr.plan_handle,\r\n\r\n\t\t\t\t\t\tNULLIF(r.percent_complete, 0) AS percent_complete,\r\n\r\n\t\t\t\t\t\tsp.host_name,\r\n\r\n\t\t\t\t\t\tsp.login_name,\r\n\r\n\t\t\t\t\t\tsp.program_name,\r\n\r\n\t\t\t\t\t\ts.host_process_id,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.text_size, s.text_size) AS text_size,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.language, s.language) AS language,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.date_format, s.date_format) AS date_format,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.date_first, s.date_first) AS date_first,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.quoted_identifier, s.quoted_identifier) AS quoted_identifier,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.arithabort, s.arithabort) AS arithabort,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.ansi_null_dflt_on, s.ansi_null_dflt_on) AS ansi_null_dflt_on,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.ansi_defaults, s.ansi_defaults) AS ansi_defaults,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.ansi_warnings, s.ansi_warnings) AS ansi_warnings,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.ansi_padding, s.ansi_padding) AS ansi_padding,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.ansi_nulls, s.ansi_nulls) AS ansi_nulls,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.concat_null_yields_null, s.concat_null_yields_null) AS concat_null_yields_null,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.transaction_isolation_level, s.transaction_isolation_level) AS transaction_isolation_level,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.lock_timeout, s.lock_timeout) AS lock_timeout,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.deadlock_priority, s.deadlock_priority) AS deadlock_priority,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.row_count, s.row_count) AS row_count,\r\n\r\n\t\t\t\t\t\tCOALESCE(r.command, sp.cmd) AS command_type,\r\n\r\n\t\t\t\t\t\tCOALESCE\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\ts.is_user_process = 0\r\n\r\n\t\t\t\t\t\t\t\t\tAND r.total_elapsed_time &gt;= 0\r\n\r\n\t\t\t\t\t\t\t\t) THEN\r\n\r\n\t\t\t\t\t\t\t\t\tDATEADD\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tms,\r\n\r\n\t\t\t\t\t\t\t\t\t\t1000 * (DATEPART(ms, DATEADD(second, -(r.total_elapsed_time \/ 1000), GETDATE())) \/ 500) - DATEPART(ms, DATEADD(second, -(r.total_elapsed_time \/ 1000), GETDATE())),\r\n\r\n\t\t\t\t\t\t\t\t\t\tDATEADD(second, -(r.total_elapsed_time \/ 1000), GETDATE())\r\n\r\n\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\tEND,\r\n\r\n\t\t\t\t\t\t\tNULLIF(COALESCE(r.start_time, sp.last_request_end_time), CONVERT(DATETIME, &#39;&#39;19000101&#39;&#39;, 112)),\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\t\tDATEADD(second, -(ms_ticks \/ 1000), GETDATE())\r\n\r\n\t\t\t\t\t\t\t\tFROM sys.dm_os_sys_info\r\n\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t) AS start_time,\r\n\r\n\t\t\t\t\t\tsp.login_time,\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN s.is_user_process = 1 THEN\r\n\r\n\t\t\t\t\t\t\t\ts.last_request_start_time\r\n\r\n\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\tCOALESCE\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tDATEADD\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tms,\r\n\r\n\t\t\t\t\t\t\t\t\t\t1000 * (DATEPART(ms, DATEADD(second, -(r.total_elapsed_time \/ 1000), GETDATE())) \/ 500) - DATEPART(ms, DATEADD(second, -(r.total_elapsed_time \/ 1000), GETDATE())),\r\n\r\n\t\t\t\t\t\t\t\t\t\tDATEADD(second, -(r.total_elapsed_time \/ 1000), GETDATE())\r\n\r\n\t\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\t\ts.last_request_start_time\r\n\r\n\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\tEND AS last_request_start_time,\r\n\r\n\t\t\t\t\t\tr.transaction_id,\r\n\r\n\t\t\t\t\t\tsp.database_id,\r\n\r\n\t\t\t\t\t\tsp.open_tran_count\r\n\r\n\t\t\t\t\tFROM @sessions AS sp\r\n\r\n\t\t\t\t\tLEFT OUTER LOOP JOIN sys.dm_exec_sessions AS s ON\r\n\r\n\t\t\t\t\t\ts.session_id = sp.session_id\r\n\r\n\t\t\t\t\t\tAND s.login_time = sp.login_time\r\n\r\n\t\t\t\t\tLEFT OUTER LOOP JOIN sys.dm_exec_requests AS r ON\r\n\r\n\t\t\t\t\t\tsp.status &lt;&gt; &#39;&#39;sleeping&#39;&#39;\r\n\r\n\t\t\t\t\t\tAND r.session_id = sp.session_id\r\n\r\n\t\t\t\t\t\tAND r.request_id = sp.request_id\r\n\r\n\t\t\t\t\t\tAND\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\ts.is_user_process = 0\r\n\r\n\t\t\t\t\t\t\t\tAND sp.is_user_process = 0\r\n\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\tOR\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tr.start_time = s.last_request_start_time\r\n\r\n\t\t\t\t\t\t\t\tAND s.last_request_end_time = sp.last_request_end_time\r\n\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t)\r\n\r\n\t\t\t\t) AS y\r\n\r\n\t\t\t\t&#39; + \r\n\r\n\t\t\t\tCASE \r\n\r\n\t\t\t\t\tWHEN @get_task_info = 2 THEN\r\n\r\n\t\t\t\t\t\tCONVERT(VARCHAR(MAX), &#39;&#39;) +\r\n\r\n\t\t\t\t\t\t&#39;LEFT OUTER HASH JOIN\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\ttask_nodes.task_node.value(&#39;&#39;(session_id\/text())[1]&#39;&#39;, &#39;&#39;SMALLINT&#39;&#39;) AS session_id,\r\n\r\n\t\t\t\t\t\t\t\ttask_nodes.task_node.value(&#39;&#39;(request_id\/text())[1]&#39;&#39;, &#39;&#39;INT&#39;&#39;) AS request_id,\r\n\r\n\t\t\t\t\t\t\t\ttask_nodes.task_node.value(&#39;&#39;(physical_io\/text())[1]&#39;&#39;, &#39;&#39;BIGINT&#39;&#39;) AS physical_io,\r\n\r\n\t\t\t\t\t\t\t\ttask_nodes.task_node.value(&#39;&#39;(context_switches\/text())[1]&#39;&#39;, &#39;&#39;BIGINT&#39;&#39;) AS context_switches,\r\n\r\n\t\t\t\t\t\t\t\ttask_nodes.task_node.value(&#39;&#39;(tasks\/text())[1]&#39;&#39;, &#39;&#39;INT&#39;&#39;) AS tasks,\r\n\r\n\t\t\t\t\t\t\t\ttask_nodes.task_node.value(&#39;&#39;(block_info\/text())[1]&#39;&#39;, &#39;&#39;NVARCHAR(4000)&#39;&#39;) AS block_info,\r\n\r\n\t\t\t\t\t\t\t\ttask_nodes.task_node.value(&#39;&#39;(waits\/text())[1]&#39;&#39;, &#39;&#39;NVARCHAR(4000)&#39;&#39;) AS wait_info,\r\n\r\n\t\t\t\t\t\t\t\ttask_nodes.task_node.value(&#39;&#39;(thread_CPU_snapshot\/text())[1]&#39;&#39;, &#39;&#39;BIGINT&#39;&#39;) AS thread_CPU_snapshot\r\n\r\n\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tXML,\r\n\r\n\t\t\t\t\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tCONVERT(NVARCHAR(MAX), tasks_raw.task_xml_raw) COLLATE Latin1_General_Bin2,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;&lt;\/waits&gt;&lt;\/tasks&gt;&lt;tasks&gt;&lt;waits&gt;&#39;&#39;,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;, &#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t) AS task_xml\r\n\r\n\t\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE waits.r\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\twaits.session_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS [session_id],\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE waits.r\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\twaits.request_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS [request_id],\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE waits.r\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\twaits.physical_io\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS [physical_io],\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE waits.r\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\twaits.context_switches\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS [context_switches],\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE waits.r\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\twaits.thread_CPU_snapshot\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS [thread_CPU_snapshot],\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE waits.r\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\twaits.tasks\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS [tasks],\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE waits.r\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\twaits.block_info\r\n\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS [block_info],\r\n\r\n\t\t\t\t\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tNVARCHAR(MAX),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;(&#39;&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(NVARCHAR, num_waits) + N&#39;&#39;x: &#39;&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE num_waits\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(NVARCHAR, min_wait_time) + N&#39;&#39;ms&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN 2 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN min_wait_time &lt;&gt; max_wait_time THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(NVARCHAR, min_wait_time) + N&#39;&#39;\/&#39;&#39; + CONVERT(NVARCHAR, max_wait_time) + N&#39;&#39;ms&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(NVARCHAR, max_wait_time) + N&#39;&#39;ms&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN min_wait_time &lt;&gt; max_wait_time THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(NVARCHAR, min_wait_time) + N&#39;&#39;\/&#39;&#39; + CONVERT(NVARCHAR, avg_wait_time) + N&#39;&#39;\/&#39;&#39; + CONVERT(NVARCHAR, max_wait_time) + N&#39;&#39;ms&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(NVARCHAR, max_wait_time) + N&#39;&#39;ms&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;)&#39;&#39; + wait_type COLLATE Latin1_General_Bin2\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNCHAR(31),N&#39;&#39;?&#39;&#39;),NCHAR(30),N&#39;&#39;?&#39;&#39;),NCHAR(29),N&#39;&#39;?&#39;&#39;),NCHAR(28),N&#39;&#39;?&#39;&#39;),NCHAR(27),N&#39;&#39;?&#39;&#39;),NCHAR(26),N&#39;&#39;?&#39;&#39;),NCHAR(25),N&#39;&#39;?&#39;&#39;),NCHAR(24),N&#39;&#39;?&#39;&#39;),NCHAR(23),N&#39;&#39;?&#39;&#39;),NCHAR(22),N&#39;&#39;?&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNCHAR(21),N&#39;&#39;?&#39;&#39;),NCHAR(20),N&#39;&#39;?&#39;&#39;),NCHAR(19),N&#39;&#39;?&#39;&#39;),NCHAR(18),N&#39;&#39;?&#39;&#39;),NCHAR(17),N&#39;&#39;?&#39;&#39;),NCHAR(16),N&#39;&#39;?&#39;&#39;),NCHAR(15),N&#39;&#39;?&#39;&#39;),NCHAR(14),N&#39;&#39;?&#39;&#39;),NCHAR(12),N&#39;&#39;?&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNCHAR(11),N&#39;&#39;?&#39;&#39;),NCHAR(8),N&#39;&#39;?&#39;&#39;),NCHAR(7),N&#39;&#39;?&#39;&#39;),NCHAR(6),N&#39;&#39;?&#39;&#39;),NCHAR(5),N&#39;&#39;?&#39;&#39;),NCHAR(4),N&#39;&#39;?&#39;&#39;),NCHAR(3),N&#39;&#39;?&#39;&#39;),NCHAR(2),N&#39;&#39;?&#39;&#39;),NCHAR(1),N&#39;&#39;?&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tNCHAR(0),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t) AS [waits]\r\n\r\n\t\t\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tw1.*,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tROW_NUMBER() OVER\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tPARTITION BY\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tw1.session_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tw1.request_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tw1.block_info DESC,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tw1.num_waits DESC,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tw1.wait_type\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t) AS r\r\n\r\n\t\t\t\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ttask_info.session_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ttask_info.request_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ttask_info.physical_io,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ttask_info.context_switches,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ttask_info.thread_CPU_snapshot,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ttask_info.num_tasks AS tasks,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN task_info.runnable_time IS NOT NULL THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;&#39;RUNNABLE&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twt2.wait_type\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tEND AS wait_type,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNULLIF(COUNT(COALESCE(task_info.runnable_time, wt2.waiting_task_address)), 0) AS num_waits,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tMIN(COALESCE(task_info.runnable_time, wt2.wait_duration_ms)) AS min_wait_time,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tAVG(COALESCE(task_info.runnable_time, wt2.wait_duration_ms)) AS avg_wait_time,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tMAX(COALESCE(task_info.runnable_time, wt2.wait_duration_ms)) AS max_wait_time,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tMAX(wt2.block_info) AS block_info\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tt.session_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tt.request_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tSUM(CONVERT(BIGINT, t.pending_io_count)) OVER (PARTITION BY t.session_id, t.request_id) AS physical_io,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tSUM(CONVERT(BIGINT, t.context_switches_count)) OVER (PARTITION BY t.session_id, t.request_id) AS context_switches, \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN @output_column_list LIKE &#39;%|[CPU_delta|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;SUM(tr.usermode_time + tr.kernel_time) OVER (PARTITION BY t.session_id, t.request_id) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;CONVERT(BIGINT, NULL) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tEND + \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#39; AS thread_CPU_snapshot, \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCOUNT(*) OVER (PARTITION BY t.session_id, t.request_id) AS num_tasks,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tt.task_address,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tt.task_state,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tt.task_state = &#39;&#39;RUNNABLE&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND w.runnable_time &gt; 0 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tw.runnable_time\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tEND AS runnable_time\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tFROM sys.dm_os_tasks AS t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tCROSS APPLY\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsp2.session_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tFROM @sessions AS sp2\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsp2.session_id = t.session_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND sp2.request_id = t.request_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND sp2.status &lt;&gt; &#39;&#39;sleeping&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t) AS sp20\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tLEFT OUTER HASH JOIN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tms_ticks\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM sys.dm_os_sys_info\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) -\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tw0.wait_resumed_ms_ticks AS runnable_time,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tw0.worker_address,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tw0.thread_address,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tw0.task_bound_ms_ticks\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tFROM sys.dm_os_workers AS w0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tw0.state = &#39;&#39;RUNNABLE&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tOR @first_collection_ms_ticks &gt;= w0.task_bound_ms_ticks\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t) AS w ON\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tw.worker_address = t.worker_address \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN @output_column_list LIKE &#39;%|[CPU_delta|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;LEFT OUTER HASH JOIN sys.dm_os_threads AS tr ON\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttr.thread_address = w.thread_address\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND @first_collection_ms_ticks &gt;= w.task_bound_ms_ticks\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;) AS task_info\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tLEFT OUTER HASH JOIN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twt1.wait_type,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twt1.waiting_task_address,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tMAX(wt1.wait_duration_ms) AS wait_duration_ms,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tMAX(wt1.block_info) AS block_info\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT DISTINCT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twt.wait_type +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN wt.wait_type LIKE N&#39;&#39;PAGE%LATCH_%&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;&#39;:&#39;&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCOALESCE(DB_NAME(CONVERT(INT, LEFT(wt.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, wt.resource_description) - 1))), N&#39;&#39;(null)&#39;&#39;) +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;:&#39;&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING(wt.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, wt.resource_description) + 1, LEN(wt.resource_description) - CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(wt.resource_description)) - CHARINDEX(N&#39;&#39;:&#39;&#39;, wt.resource_description)) +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;(&#39;&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(wt.resource_description)) - 1)) = 1 OR\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(wt.resource_description)) - 1)) % 8088 = 0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;PFS&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(wt.resource_description)) - 1)) = 2 OR\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(wt.resource_description)) - 1)) % 511232 = 0 \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;GAM&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(wt.resource_description)) - 1)) = 3 OR\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(wt.resource_description)) - 1)) % 511233 = 0 \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;SGAM&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(wt.resource_description)) - 1)) = 6 OR\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(wt.resource_description)) - 1)) % 511238 = 0 \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;DCM&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(wt.resource_description)) - 1)) = 7 OR\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(INT, RIGHT(wt.resource_description, CHARINDEX(N&#39;&#39;:&#39;&#39;, REVERSE(wt.resource_description)) - 1)) % 511239 = 0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTHEN \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;BCM&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;*&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;)&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN wt.wait_type = N&#39;&#39;CXPACKET&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;:&#39;&#39; + SUBSTRING(wt.resource_description, CHARINDEX(N&#39;&#39;nodeId&#39;&#39;, wt.resource_description) + 7, 4)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN wt.wait_type LIKE N&#39;&#39;LATCH[_]%&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39; [&#39;&#39; + LEFT(wt.resource_description, COALESCE(NULLIF(CHARINDEX(N&#39;&#39; &#39;&#39;, wt.resource_description), 0), LEN(wt.resource_description) + 1) - 1) + N&#39;&#39;]&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND COLLATE Latin1_General_Bin2 AS wait_type,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twt.blocking_session_id IS NOT NULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND wt.wait_type LIKE N&#39;&#39;LCK[_]%&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tx.lock_type,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tDB_NAME\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tINT,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N&#39;&#39;dbid=&#39;&#39;, wt.resource_description), 0) + 5, COALESCE(NULLIF(CHARINDEX(N&#39;&#39; &#39;&#39;, wt.resource_description, CHARINDEX(N&#39;&#39;dbid=&#39;&#39;, wt.resource_description) + 5), 0), LEN(wt.resource_des\r\ncription) + 1) - CHARINDEX(N&#39;&#39;dbid=&#39;&#39;, wt.resource_description) - 5)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNCHAR(31),N&#39;&#39;?&#39;&#39;),NCHAR(30),N&#39;&#39;?&#39;&#39;),NCHAR(29),N&#39;&#39;?&#39;&#39;),NCHAR(28),N&#39;&#39;?&#39;&#39;),NCHAR(27),N&#39;&#39;?&#39;&#39;),NCHAR(26),N&#39;&#39;?&#39;&#39;),NCHAR(25),N&#39;&#39;?&#39;&#39;),NCHAR(24),N&#39;&#39;?&#39;&#39;),NCHAR(23),N&#39;&#39;?&#39;&#39;),NCHAR(22),N&#39;&#39;?&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNCHAR(21),N&#39;&#39;?&#39;&#39;),NCHAR(20),N&#39;&#39;?&#39;&#39;),NCHAR(19),N&#39;&#39;?&#39;&#39;),NCHAR(18),N&#39;&#39;?&#39;&#39;),NCHAR(17),N&#39;&#39;?&#39;&#39;),NCHAR(16),N&#39;&#39;?&#39;&#39;),NCHAR(15),N&#39;&#39;?&#39;&#39;),NCHAR(14),N&#39;&#39;?&#39;&#39;),NCHAR(12),N&#39;&#39;?&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNCHAR(11),N&#39;&#39;?&#39;&#39;),NCHAR(8),N&#39;&#39;?&#39;&#39;),NCHAR(7),N&#39;&#39;?&#39;&#39;),NCHAR(6),N&#39;&#39;?&#39;&#39;),NCHAR(5),N&#39;&#39;?&#39;&#39;),NCHAR(4),N&#39;&#39;?&#39;&#39;),NCHAR(3),N&#39;&#39;?&#39;&#39;),NCHAR(2),N&#39;&#39;?&#39;&#39;),NCHAR(1),N&#39;&#39;?&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNCHAR(0),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tN&#39;&#39;&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) AS database_name,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE x.lock_type\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN N&#39;&#39;objectlock&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N&#39;&#39;objid=&#39;&#39;, wt.resource_description), 0) + 6, COALESCE(NULLIF(CHARINDEX(N&#39;&#39; &#39;&#39;, wt.resource_description, CHARINDEX(N&#39;&#39;objid=&#39;&#39;, wt.resource_description) + 6), 0), LEN(wt.resource_des\r\ncription) + 1) - CHARINDEX(N&#39;&#39;objid=&#39;&#39;, wt.resource_description) - 6)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND AS object_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE x.lock_type\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN N&#39;&#39;filelock&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N&#39;&#39;fileid=&#39;&#39;, wt.resource_description), 0) + 7, COALESCE(NULLIF(CHARINDEX(N&#39;&#39; &#39;&#39;, wt.resource_description, CHARINDEX(N&#39;&#39;fileid=&#39;&#39;, wt.resource_description) + 7), 0), LEN(wt.resource_d\r\nescription) + 1) - CHARINDEX(N&#39;&#39;fileid=&#39;&#39;, wt.resource_description) - 7)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND AS file_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN x.lock_type in (N&#39;&#39;pagelock&#39;&#39;, N&#39;&#39;extentlock&#39;&#39;, N&#39;&#39;ridlock&#39;&#39;) THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N&#39;&#39;associatedObjectId=&#39;&#39;, wt.resource_description), 0) + 19, COALESCE(NULLIF(CHARINDEX(N&#39;&#39; &#39;&#39;, wt.resource_description, CHARINDEX(N&#39;&#39;associatedObjectId=&#39;&#39;, wt.resource_description) + \r\n19), 0), LEN(wt.resource_description) + 1) - CHARINDEX(N&#39;&#39;associatedObjectId=&#39;&#39;, wt.resource_description) - 19)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN x.lock_type in (N&#39;&#39;keylock&#39;&#39;, N&#39;&#39;hobtlock&#39;&#39;, N&#39;&#39;allocunitlock&#39;&#39;) THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N&#39;&#39;hobtid=&#39;&#39;, wt.resource_description), 0) + 7, COALESCE(NULLIF(CHARINDEX(N&#39;&#39; &#39;&#39;, wt.resource_description, CHARINDEX(N&#39;&#39;hobtid=&#39;&#39;, wt.resource_description) + 7), 0), LEN(wt.resource_d\r\nescription) + 1) - CHARINDEX(N&#39;&#39;hobtid=&#39;&#39;, wt.resource_description) - 7)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND AS hobt_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE x.lock_type\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN N&#39;&#39;applicationlock&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N&#39;&#39;hash=&#39;&#39;, wt.resource_description), 0) + 5, COALESCE(NULLIF(CHARINDEX(N&#39;&#39; &#39;&#39;, wt.resource_description, CHARINDEX(N&#39;&#39;hash=&#39;&#39;, wt.resource_description) + 5), 0), LEN(wt.resource_descr\r\niption) + 1) - CHARINDEX(N&#39;&#39;hash=&#39;&#39;, wt.resource_description) - 5)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND AS applock_hash,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE x.lock_type\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN N&#39;&#39;metadatalock&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N&#39;&#39;subresource=&#39;&#39;, wt.resource_description), 0) + 12, COALESCE(NULLIF(CHARINDEX(N&#39;&#39; &#39;&#39;, wt.resource_description, CHARINDEX(N&#39;&#39;subresource=&#39;&#39;, wt.resource_description) + 12), 0), LEN(w\r\nt.resource_description) + 1) - CHARINDEX(N&#39;&#39;subresource=&#39;&#39;, wt.resource_description) - 12)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND AS metadata_resource,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE x.lock_type\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN N&#39;&#39;metadatalock&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING(wt.resource_description, NULLIF(CHARINDEX(N&#39;&#39;classid=&#39;&#39;, wt.resource_description), 0) + 8, COALESCE(NULLIF(CHARINDEX(N&#39;&#39; dbid=&#39;&#39;, wt.resource_description) - CHARINDEX(N&#39;&#39;classid=&#39;&#39;, wt.resource_description), 0), LEN(wt.resour\r\nce_description) + 1) - 8)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND AS metadata_class_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tLEFT(wt.resource_description, CHARINDEX(N&#39;&#39; &#39;&#39;, wt.resource_description) - 1) COLLATE Latin1_General_Bin2 AS lock_type\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) AS x\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPATH(&#39;&#39;&#39;&#39;)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND AS block_info,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twt.wait_duration_ms,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twt.waiting_task_address\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twt0.wait_type COLLATE Latin1_General_Bin2 AS wait_type,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twt0.resource_description COLLATE Latin1_General_Bin2 AS resource_description,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twt0.wait_duration_ms,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twt0.waiting_task_address,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN wt0.blocking_session_id = p.blocked THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twt0.blocking_session_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND AS blocking_session_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM sys.dm_os_waiting_tasks AS wt0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCROSS APPLY\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ts0.blocked\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM @sessions AS s0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ts0.session_id = wt0.session_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND COALESCE(s0.wait_type, N&#39;&#39;&#39;&#39;) &lt;&gt; N&#39;&#39;OLEDB&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND wt0.wait_type &lt;&gt; N&#39;&#39;OLEDB&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) AS p\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) AS wt\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t) AS wt1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tGROUP BY\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twt1.wait_type,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twt1.waiting_task_address\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t) AS wt2 ON\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\twt2.waiting_task_address = task_info.task_address\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tAND wt2.wait_duration_ms &gt; 0\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tAND task_info.runnable_time IS NULL\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tGROUP BY\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ttask_info.session_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ttask_info.request_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ttask_info.physical_io,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ttask_info.context_switches,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ttask_info.thread_CPU_snapshot,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\ttask_info.num_tasks,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN task_info.runnable_time IS NOT NULL THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;&#39;RUNNABLE&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twt2.wait_type\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\t\t) AS w1\r\n\r\n\t\t\t\t\t\t\t\t\t) AS waits\r\n\r\n\t\t\t\t\t\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\t\t\t\t\t\twaits.session_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\twaits.request_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\twaits.r\r\n\r\n\t\t\t\t\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\t\t\t\t\tPATH(N&#39;&#39;tasks&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t\t\t\t\t) AS tasks_raw (task_xml_raw)\r\n\r\n\t\t\t\t\t\t\t) AS tasks_final\r\n\r\n\t\t\t\t\t\t\tCROSS APPLY tasks_final.task_xml.nodes(N&#39;&#39;\/tasks&#39;&#39;) AS task_nodes (task_node)\r\n\r\n\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\ttask_nodes.task_node.exist(N&#39;&#39;session_id&#39;&#39;) = 1\r\n\r\n\t\t\t\t\t\t) AS tasks ON\r\n\r\n\t\t\t\t\t\t\ttasks.session_id = y.session_id\r\n\r\n\t\t\t\t\t\t\tAND tasks.request_id = y.request_id \r\n\r\n\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\tEND +\r\n\r\n\t\t\t\t&#39;LEFT OUTER HASH JOIN\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\tt_info.session_id,\r\n\r\n\t\t\t\t\t\tCOALESCE(t_info.request_id, -1) AS request_id,\r\n\r\n\t\t\t\t\t\tSUM(t_info.tempdb_allocations) AS tempdb_allocations,\r\n\r\n\t\t\t\t\t\tSUM(t_info.tempdb_current) AS tempdb_current\r\n\r\n\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\ttsu.session_id,\r\n\r\n\t\t\t\t\t\t\ttsu.request_id,\r\n\r\n\t\t\t\t\t\t\ttsu.user_objects_alloc_page_count +\r\n\r\n\t\t\t\t\t\t\t\ttsu.internal_objects_alloc_page_count AS tempdb_allocations,\r\n\r\n\t\t\t\t\t\t\ttsu.user_objects_alloc_page_count +\r\n\r\n\t\t\t\t\t\t\t\ttsu.internal_objects_alloc_page_count -\r\n\r\n\t\t\t\t\t\t\t\ttsu.user_objects_dealloc_page_count -\r\n\r\n\t\t\t\t\t\t\t\ttsu.internal_objects_dealloc_page_count AS tempdb_current\r\n\r\n\t\t\t\t\t\tFROM sys.dm_db_task_space_usage AS tsu\r\n\r\n\t\t\t\t\t\tCROSS APPLY\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\ts0.session_id\r\n\r\n\t\t\t\t\t\t\tFROM @sessions AS s0\r\n\r\n\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\ts0.session_id = tsu.session_id\r\n\r\n\t\t\t\t\t\t) AS p\r\n\r\n\r\n\r\n\t\t\t\t\t\tUNION ALL\r\n\r\n\r\n\r\n\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\tssu.session_id,\r\n\r\n\t\t\t\t\t\t\tNULL AS request_id,\r\n\r\n\t\t\t\t\t\t\tssu.user_objects_alloc_page_count +\r\n\r\n\t\t\t\t\t\t\t\tssu.internal_objects_alloc_page_count AS tempdb_allocations,\r\n\r\n\t\t\t\t\t\t\tssu.user_objects_alloc_page_count +\r\n\r\n\t\t\t\t\t\t\t\tssu.internal_objects_alloc_page_count -\r\n\r\n\t\t\t\t\t\t\t\tssu.user_objects_dealloc_page_count -\r\n\r\n\t\t\t\t\t\t\t\tssu.internal_objects_dealloc_page_count AS tempdb_current\r\n\r\n\t\t\t\t\t\tFROM sys.dm_db_session_space_usage AS ssu\r\n\r\n\t\t\t\t\t\tCROSS APPLY\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\ts0.session_id\r\n\r\n\t\t\t\t\t\t\tFROM @sessions AS s0\r\n\r\n\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\ts0.session_id = ssu.session_id\r\n\r\n\t\t\t\t\t\t) AS p\r\n\r\n\t\t\t\t\t) AS t_info\r\n\r\n\t\t\t\t\tGROUP BY\r\n\r\n\t\t\t\t\t\tt_info.session_id,\r\n\r\n\t\t\t\t\t\tCOALESCE(t_info.request_id, -1)\r\n\r\n\t\t\t\t) AS tempdb_info ON\r\n\r\n\t\t\t\t\ttempdb_info.session_id = y.session_id\r\n\r\n\t\t\t\t\tAND tempdb_info.request_id =\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN y.status = N&#39;&#39;sleeping&#39;&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t-1\r\n\r\n\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\ty.request_id\r\n\r\n\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t&#39; +\r\n\r\n\t\t\t\tCASE \r\n\r\n\t\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t\tNOT \r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t@get_avg_time = 1 \r\n\r\n\t\t\t\t\t\t\tAND @recursion = 1\r\n\r\n\t\t\t\t\t\t) THEN \r\n\r\n\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t&#39;LEFT OUTER HASH JOIN\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t*\r\n\r\n\t\t\t\t\t\t\tFROM sys.dm_exec_query_stats\r\n\r\n\t\t\t\t\t\t) AS qs ON\r\n\r\n\t\t\t\t\t\t\tqs.sql_handle = y.sql_handle\r\n\r\n\t\t\t\t\t\t\tAND qs.plan_handle = y.plan_handle\r\n\r\n\t\t\t\t\t\t\tAND qs.statement_start_offset = y.statement_start_offset\r\n\r\n\t\t\t\t\t\t\tAND qs.statement_end_offset = y.statement_end_offset\r\n\r\n\t\t\t\t\t\t&#39;\r\n\r\n\t\t\t\tEND + \r\n\r\n\t\t\t&#39;) AS x\r\n\r\n\t\t\tOPTION (KEEPFIXED PLAN, OPTIMIZE FOR (@i = 1)); &#39;;\r\n\r\n\r\n\r\n\t\tSET @sql_n = CONVERT(NVARCHAR(MAX), @sql);\r\n\r\n\r\n\r\n\t\tSET @last_collection_start = GETDATE();\r\n\r\n\r\n\r\n\t\tIF @recursion = -1\r\n\r\n\t\tBEGIN;\r\n\r\n\t\t\tSELECT\r\n\r\n\t\t\t\t@first_collection_ms_ticks = ms_ticks\r\n\r\n\t\t\tFROM sys.dm_os_sys_info;\r\n\r\n\t\tEND;\r\n\r\n\r\n\r\n\t\tINSERT #sessions\r\n\r\n\t\t(\r\n\r\n\t\t\trecursion,\r\n\r\n\t\t\tsession_id,\r\n\r\n\t\t\trequest_id,\r\n\r\n\t\t\tsession_number,\r\n\r\n\t\t\telapsed_time,\r\n\r\n\t\t\tavg_elapsed_time,\r\n\r\n\t\t\tphysical_io,\r\n\r\n\t\t\treads,\r\n\r\n\t\t\tphysical_reads,\r\n\r\n\t\t\twrites,\r\n\r\n\t\t\ttempdb_allocations,\r\n\r\n\t\t\ttempdb_current,\r\n\r\n\t\t\tCPU,\r\n\r\n\t\t\tthread_CPU_snapshot,\r\n\r\n\t\t\tcontext_switches,\r\n\r\n\t\t\tused_memory,\r\n\r\n\t\t\ttasks,\r\n\r\n\t\t\tstatus,\r\n\r\n\t\t\twait_info,\r\n\r\n\t\t\ttransaction_id,\r\n\r\n\t\t\topen_tran_count,\r\n\r\n\t\t\tsql_handle,\r\n\r\n\t\t\tstatement_start_offset,\r\n\r\n\t\t\tstatement_end_offset,\t\t\r\n\r\n\t\t\tsql_text,\r\n\r\n\t\t\tplan_handle,\r\n\r\n\t\t\tblocking_session_id,\r\n\r\n\t\t\tpercent_complete,\r\n\r\n\t\t\thost_name,\r\n\r\n\t\t\tlogin_name,\r\n\r\n\t\t\tdatabase_name,\r\n\r\n\t\t\tprogram_name,\r\n\r\n\t\t\tadditional_info,\r\n\r\n\t\t\tstart_time,\r\n\r\n\t\t\tlogin_time,\r\n\r\n\t\t\tlast_request_start_time\r\n\r\n\t\t)\r\n\r\n\t\tEXEC sp_executesql \r\n\r\n\t\t\t@sql_n,\r\n\r\n\t\t\tN&#39;@recursion SMALLINT, @filter sysname, @not_filter sysname, @first_collection_ms_ticks BIGINT&#39;,\r\n\r\n\t\t\t@recursion, @filter, @not_filter, @first_collection_ms_ticks;\r\n\r\n\r\n\r\n\t\t--Collect transaction information?\r\n\r\n\t\tIF\r\n\r\n\t\t\t@recursion = 1\r\n\r\n\t\t\tAND\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\t@output_column_list LIKE &#39;%|[tran_start_time|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\t\tOR @output_column_list LIKE &#39;%|[tran_log_writes|]%&#39; ESCAPE &#39;|&#39; \r\n\r\n\t\t\t)\r\n\r\n\t\tBEGIN;\t\r\n\r\n\t\t\tDECLARE @i INT;\r\n\r\n\t\t\tSET @i = 2147483647;\r\n\r\n\r\n\r\n\t\t\tUPDATE s\r\n\r\n\t\t\tSET\r\n\r\n\t\t\t\ttran_start_time =\r\n\r\n\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\tDATETIME,\r\n\r\n\t\t\t\t\t\tLEFT\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tx.trans_info,\r\n\r\n\t\t\t\t\t\t\tNULLIF(CHARINDEX(NCHAR(254) COLLATE Latin1_General_Bin2, x.trans_info) - 1, -1)\r\n\r\n\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t121\r\n\r\n\t\t\t\t\t),\r\n\r\n\t\t\t\ttran_log_writes =\r\n\r\n\t\t\t\t\tRIGHT\r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\tx.trans_info,\r\n\r\n\t\t\t\t\t\tLEN(x.trans_info) - CHARINDEX(NCHAR(254) COLLATE Latin1_General_Bin2, x.trans_info)\r\n\r\n\t\t\t\t\t)\r\n\r\n\t\t\tFROM\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\ttrans_nodes.trans_node.value(&#39;(session_id\/text())[1]&#39;, &#39;SMALLINT&#39;) AS session_id,\r\n\r\n\t\t\t\t\tCOALESCE(trans_nodes.trans_node.value(&#39;(request_id\/text())[1]&#39;, &#39;INT&#39;), 0) AS request_id,\r\n\r\n\t\t\t\t\ttrans_nodes.trans_node.value(&#39;(trans_info\/text())[1]&#39;, &#39;NVARCHAR(4000)&#39;) AS trans_info\t\t\t\t\r\n\r\n\t\t\t\tFROM\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tXML,\r\n\r\n\t\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tCONVERT(NVARCHAR(MAX), trans_raw.trans_xml_raw) COLLATE Latin1_General_Bin2, \r\n\r\n\t\t\t\t\t\t\t\tN&#39;&lt;\/trans_info&gt;&lt;\/trans&gt;&lt;trans&gt;&lt;trans_info&gt;&#39;, N&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\tCASE u_trans.r\r\n\r\n\t\t\t\t\t\t\t\tWHEN 1 THEN u_trans.session_id\r\n\r\n\t\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\t\tEND AS [session_id],\r\n\r\n\t\t\t\t\t\t\tCASE u_trans.r\r\n\r\n\t\t\t\t\t\t\t\tWHEN 1 THEN u_trans.request_id\r\n\r\n\t\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\t\tEND AS [request_id],\r\n\r\n\t\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tNVARCHAR(MAX),\r\n\r\n\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN u_trans.database_id IS NOT NULL THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE u_trans.r\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN COALESCE(CONVERT(NVARCHAR, u_trans.transaction_start_time, 121) + NCHAR(254), N&#39;&#39;)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE N&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND + \r\n\r\n\t\t\t\t\t\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCONVERT(VARCHAR(128), COALESCE(DB_NAME(u_trans.database_id), N&#39;(null)&#39;)),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tNCHAR(31),N&#39;?&#39;),NCHAR(30),N&#39;?&#39;),NCHAR(29),N&#39;?&#39;),NCHAR(28),N&#39;?&#39;),NCHAR(27),N&#39;?&#39;),NCHAR(26),N&#39;?&#39;),NCHAR(25),N&#39;?&#39;),NCHAR(24),N&#39;?&#39;),NCHAR(23),N&#39;?&#39;),NCHAR(22),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tNCHAR(21),N&#39;?&#39;),NCHAR(20),N&#39;?&#39;),NCHAR(19),N&#39;?&#39;),NCHAR(18),N&#39;?&#39;),NCHAR(17),N&#39;?&#39;),NCHAR(16),N&#39;?&#39;),NCHAR(15),N&#39;?&#39;),NCHAR(14),N&#39;?&#39;),NCHAR(12),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tNCHAR(11),N&#39;?&#39;),NCHAR(8),N&#39;?&#39;),NCHAR(7),N&#39;?&#39;),NCHAR(6),N&#39;?&#39;),NCHAR(5),N&#39;?&#39;),NCHAR(4),N&#39;?&#39;),NCHAR(3),N&#39;?&#39;),NCHAR(2),N&#39;?&#39;),NCHAR(1),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tNCHAR(0),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tN&#39;?&#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t) +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tN&#39;: &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCONVERT(NVARCHAR, u_trans.log_record_count) + N&#39; (&#39; + CONVERT(NVARCHAR, u_trans.log_kb_used) + N&#39; kB)&#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\tN&#39;,&#39;\r\n\r\n\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\tN&#39;N\/A,&#39;\r\n\r\n\t\t\t\t\t\t\t\tEND COLLATE Latin1_General_Bin2\r\n\r\n\t\t\t\t\t\t\t) AS [trans_info]\r\n\r\n\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\ttrans.*,\r\n\r\n\t\t\t\t\t\t\t\tROW_NUMBER() OVER\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tPARTITION BY\r\n\r\n\t\t\t\t\t\t\t\t\t\ttrans.session_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\ttrans.request_id\r\n\r\n\t\t\t\t\t\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\t\t\t\t\t\ttrans.transaction_start_time DESC\r\n\r\n\t\t\t\t\t\t\t\t) AS r\r\n\r\n\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\tsession_tran_map.session_id,\r\n\r\n\t\t\t\t\t\t\t\t\tsession_tran_map.request_id,\r\n\r\n\t\t\t\t\t\t\t\t\ts_tran.database_id,\r\n\r\n\t\t\t\t\t\t\t\t\tCOALESCE(SUM(s_tran.database_transaction_log_record_count), 0) AS log_record_count,\r\n\r\n\t\t\t\t\t\t\t\t\tCOALESCE(SUM(s_tran.database_transaction_log_bytes_used), 0) \/ 1024 AS log_kb_used,\r\n\r\n\t\t\t\t\t\t\t\t\tMIN(s_tran.database_transaction_begin_time) AS transaction_start_time\r\n\r\n\t\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\t*\r\n\r\n\t\t\t\t\t\t\t\t\tFROM sys.dm_tran_active_transactions\r\n\r\n\t\t\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\t\t\ttransaction_begin_time &lt;= @last_collection_start\r\n\r\n\t\t\t\t\t\t\t\t) AS a_tran\r\n\r\n\t\t\t\t\t\t\t\tINNER HASH JOIN\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\t*\r\n\r\n\t\t\t\t\t\t\t\t\tFROM sys.dm_tran_database_transactions\r\n\r\n\t\t\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\t\t\tdatabase_id &lt; 32767\r\n\r\n\t\t\t\t\t\t\t\t) AS s_tran ON\r\n\r\n\t\t\t\t\t\t\t\t\ts_tran.transaction_id = a_tran.transaction_id\r\n\r\n\t\t\t\t\t\t\t\tLEFT OUTER HASH JOIN\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tSELECT TOP(@i)\r\n\r\n\t\t\t\t\t\t\t\t\t\t*\r\n\r\n\t\t\t\t\t\t\t\t\tFROM sys.dm_tran_session_transactions\r\n\r\n\t\t\t\t\t\t\t\t) AS tst ON\r\n\r\n\t\t\t\t\t\t\t\t\ts_tran.transaction_id = tst.transaction_id\r\n\r\n\t\t\t\t\t\t\t\tCROSS APPLY\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\t\t\ts3.session_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\ts3.request_id\r\n\r\n\t\t\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\ts1.session_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\ts1.request_id\r\n\r\n\t\t\t\t\t\t\t\t\t\tFROM #sessions AS s1\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\ts1.transaction_id = s_tran.transaction_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tAND s1.recursion = 1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\tUNION ALL\r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\ts2.session_id,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\ts2.request_id\r\n\r\n\t\t\t\t\t\t\t\t\t\tFROM #sessions AS s2\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\ts2.session_id = tst.session_id\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tAND s2.recursion = 1\r\n\r\n\t\t\t\t\t\t\t\t\t) AS s3\r\n\r\n\t\t\t\t\t\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\t\t\t\t\t\ts3.request_id\r\n\r\n\t\t\t\t\t\t\t\t) AS session_tran_map\r\n\r\n\t\t\t\t\t\t\t\tGROUP BY\r\n\r\n\t\t\t\t\t\t\t\t\tsession_tran_map.session_id,\r\n\r\n\t\t\t\t\t\t\t\t\tsession_tran_map.request_id,\r\n\r\n\t\t\t\t\t\t\t\t\ts_tran.database_id\r\n\r\n\t\t\t\t\t\t\t) AS trans\r\n\r\n\t\t\t\t\t\t) AS u_trans\r\n\r\n\t\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\t\tPATH(&#39;trans&#39;),\r\n\r\n\t\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t\t) AS trans_raw (trans_xml_raw)\r\n\r\n\t\t\t\t) AS trans_final (trans_xml)\r\n\r\n\t\t\t\tCROSS APPLY trans_final.trans_xml.nodes(&#39;\/trans&#39;) AS trans_nodes (trans_node)\r\n\r\n\t\t\t) AS x\r\n\r\n\t\t\tINNER HASH JOIN #sessions AS s ON\r\n\r\n\t\t\t\ts.session_id = x.session_id\r\n\r\n\t\t\t\tAND s.request_id = x.request_id\r\n\r\n\t\t\tOPTION (OPTIMIZE FOR (@i = 1));\r\n\r\n\t\tEND;\r\n\r\n\r\n\r\n\t\t--Variables for text and plan collection\r\n\r\n\t\tDECLARE\t\r\n\r\n\t\t\t@session_id SMALLINT,\r\n\r\n\t\t\t@request_id INT,\r\n\r\n\t\t\t@sql_handle VARBINARY(64),\r\n\r\n\t\t\t@plan_handle VARBINARY(64),\r\n\r\n\t\t\t@statement_start_offset INT,\r\n\r\n\t\t\t@statement_end_offset INT,\r\n\r\n\t\t\t@start_time DATETIME,\r\n\r\n\t\t\t@database_name sysname;\r\n\r\n\r\n\r\n\t\tIF \r\n\r\n\t\t\t@recursion = 1\r\n\r\n\t\t\tAND @output_column_list LIKE &#39;%|[sql_text|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\tBEGIN;\r\n\r\n\t\t\tDECLARE sql_cursor\r\n\r\n\t\t\tCURSOR LOCAL FAST_FORWARD\r\n\r\n\t\t\tFOR \r\n\r\n\t\t\t\tSELECT \r\n\r\n\t\t\t\t\tsession_id,\r\n\r\n\t\t\t\t\trequest_id,\r\n\r\n\t\t\t\t\tsql_handle,\r\n\r\n\t\t\t\t\tstatement_start_offset,\r\n\r\n\t\t\t\t\tstatement_end_offset\r\n\r\n\t\t\t\tFROM #sessions\r\n\r\n\t\t\t\tWHERE\r\n\r\n\t\t\t\t\trecursion = 1\r\n\r\n\t\t\t\t\tAND sql_handle IS NOT NULL\r\n\r\n\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\r\n\r\n\t\t\tOPEN sql_cursor;\r\n\r\n\r\n\r\n\t\t\tFETCH NEXT FROM sql_cursor\r\n\r\n\t\t\tINTO \r\n\r\n\t\t\t\t@session_id,\r\n\r\n\t\t\t\t@request_id,\r\n\r\n\t\t\t\t@sql_handle,\r\n\r\n\t\t\t\t@statement_start_offset,\r\n\r\n\t\t\t\t@statement_end_offset;\r\n\r\n\r\n\r\n\t\t\t--Wait up to 5 ms for the SQL text, then give up\r\n\r\n\t\t\tSET LOCK_TIMEOUT 5;\r\n\r\n\r\n\r\n\t\t\tWHILE @@FETCH_STATUS = 0\r\n\r\n\t\t\tBEGIN;\r\n\r\n\t\t\t\tBEGIN TRY;\r\n\r\n\t\t\t\t\tUPDATE s\r\n\r\n\t\t\t\t\tSET\r\n\r\n\t\t\t\t\t\ts.sql_text =\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tSELECT\r\n\r\n\t\t\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\t\tN&#39;--&#39; + NCHAR(13) + NCHAR(10) +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE \r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN @get_full_inner_text = 1 THEN est.text\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN LEN(est.text) &lt; (@statement_end_offset \/ 2) + 1 THEN est.text\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN SUBSTRING(est.text, (@statement_start_offset\/2), 2) LIKE N&#39;[a-zA-Z0-9][a-zA-Z0-9]&#39; THEN est.text\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN @statement_start_offset &gt; 0 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSUBSTRING\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\test.text,\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t((@statement_start_offset\/2) + 1),\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN @statement_end_offset = -1 THEN 2147483647\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE ((@statement_end_offset - @statement_start_offset)\/2) + 1\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tELSE RTRIM(LTRIM(est.text))\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\t\t\t\tNCHAR(13) + NCHAR(10) + N&#39;--&#39; COLLATE Latin1_General_Bin2,\r\n\r\n\t\t\t\t\t\t\t\t\t\tNCHAR(31),N&#39;?&#39;),NCHAR(30),N&#39;?&#39;),NCHAR(29),N&#39;?&#39;),NCHAR(28),N&#39;?&#39;),NCHAR(27),N&#39;?&#39;),NCHAR(26),N&#39;?&#39;),NCHAR(25),N&#39;?&#39;),NCHAR(24),N&#39;?&#39;),NCHAR(23),N&#39;?&#39;),NCHAR(22),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\tNCHAR(21),N&#39;?&#39;),NCHAR(20),N&#39;?&#39;),NCHAR(19),N&#39;?&#39;),NCHAR(18),N&#39;?&#39;),NCHAR(17),N&#39;?&#39;),NCHAR(16),N&#39;?&#39;),NCHAR(15),N&#39;?&#39;),NCHAR(14),N&#39;?&#39;),NCHAR(12),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\tNCHAR(11),N&#39;?&#39;),NCHAR(8),N&#39;?&#39;),NCHAR(7),N&#39;?&#39;),NCHAR(6),N&#39;?&#39;),NCHAR(5),N&#39;?&#39;),NCHAR(4),N&#39;?&#39;),NCHAR(3),N&#39;?&#39;),NCHAR(2),N&#39;?&#39;),NCHAR(1),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(0),\r\n\r\n\t\t\t\t\t\t\t\t\tN&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t\t) AS [processing-instruction(query)]\r\n\r\n\t\t\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\t\t\tPATH(&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\ts.statement_start_offset = \r\n\r\n\t\t\t\t\t\t\tCASE \r\n\r\n\t\t\t\t\t\t\t\tWHEN LEN(est.text) &lt; (@statement_end_offset \/ 2) + 1 THEN 0\r\n\r\n\t\t\t\t\t\t\t\tWHEN SUBSTRING(CONVERT(VARCHAR(MAX), est.text), (@statement_start_offset\/2), 2) LIKE &#39;[a-zA-Z0-9][a-zA-Z0-9]&#39; THEN 0\r\n\r\n\t\t\t\t\t\t\t\tELSE @statement_start_offset\r\n\r\n\t\t\t\t\t\t\tEND,\r\n\r\n\t\t\t\t\t\ts.statement_end_offset = \r\n\r\n\t\t\t\t\t\t\tCASE \r\n\r\n\t\t\t\t\t\t\t\tWHEN LEN(est.text) &lt; (@statement_end_offset \/ 2) + 1 THEN -1\r\n\r\n\t\t\t\t\t\t\t\tWHEN SUBSTRING(CONVERT(VARCHAR(MAX), est.text), (@statement_start_offset\/2), 2) LIKE &#39;[a-zA-Z0-9][a-zA-Z0-9]&#39; THEN -1\r\n\r\n\t\t\t\t\t\t\t\tELSE @statement_end_offset\r\n\r\n\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\tFROM \r\n\r\n\t\t\t\t\t\t#sessions AS s,\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tSELECT TOP(1)\r\n\r\n\t\t\t\t\t\t\t\ttext\r\n\r\n\t\t\t\t\t\t\tFROM\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tSELECT \r\n\r\n\t\t\t\t\t\t\t\t\ttext, \r\n\r\n\t\t\t\t\t\t\t\t\t0 AS row_num\r\n\r\n\t\t\t\t\t\t\t\tFROM sys.dm_exec_sql_text(@sql_handle)\r\n\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\tUNION ALL\r\n\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\tSELECT \r\n\r\n\t\t\t\t\t\t\t\t\tNULL,\r\n\r\n\t\t\t\t\t\t\t\t\t1 AS row_num\r\n\r\n\t\t\t\t\t\t\t) AS est0\r\n\r\n\t\t\t\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\t\t\t\trow_num\r\n\r\n\t\t\t\t\t\t) AS est\r\n\r\n\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\ts.session_id = @session_id\r\n\r\n\t\t\t\t\t\tAND s.request_id = @request_id\r\n\r\n\t\t\t\t\t\tAND s.recursion = 1\r\n\r\n\t\t\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\t\t\t\tEND TRY\r\n\r\n\t\t\t\tBEGIN CATCH;\r\n\r\n\t\t\t\t\tUPDATE s\r\n\r\n\t\t\t\t\tSET\r\n\r\n\t\t\t\t\t\ts.sql_text = \r\n\r\n\t\t\t\t\t\t\tCASE ERROR_NUMBER() \r\n\r\n\t\t\t\t\t\t\t\tWHEN 1222 THEN &#39;&lt;timeout_exceeded \/&gt;&#39;\r\n\r\n\t\t\t\t\t\t\t\tELSE &#39;&lt;error message=&quot;&#39; + ERROR_MESSAGE() + &#39;&quot; \/&gt;&#39;\r\n\r\n\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\tFROM #sessions AS s\r\n\r\n\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\ts.session_id = @session_id\r\n\r\n\t\t\t\t\t\tAND s.request_id = @request_id\r\n\r\n\t\t\t\t\t\tAND s.recursion = 1\r\n\r\n\t\t\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\t\t\t\tEND CATCH;\r\n\r\n\r\n\r\n\t\t\t\tFETCH NEXT FROM sql_cursor\r\n\r\n\t\t\t\tINTO\r\n\r\n\t\t\t\t\t@session_id,\r\n\r\n\t\t\t\t\t@request_id,\r\n\r\n\t\t\t\t\t@sql_handle,\r\n\r\n\t\t\t\t\t@statement_start_offset,\r\n\r\n\t\t\t\t\t@statement_end_offset;\r\n\r\n\t\t\tEND;\r\n\r\n\r\n\r\n\t\t\t--Return this to the default\r\n\r\n\t\t\tSET LOCK_TIMEOUT -1;\r\n\r\n\r\n\r\n\t\t\tCLOSE sql_cursor;\r\n\r\n\t\t\tDEALLOCATE sql_cursor;\r\n\r\n\t\tEND;\r\n\r\n\r\n\r\n\t\tIF \r\n\r\n\t\t\t@get_outer_command = 1 \r\n\r\n\t\t\tAND @recursion = 1\r\n\r\n\t\t\tAND @output_column_list LIKE &#39;%|[sql_command|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\tBEGIN;\r\n\r\n\t\t\tDECLARE @buffer_results TABLE\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tEventType VARCHAR(30),\r\n\r\n\t\t\t\tParameters INT,\r\n\r\n\t\t\t\tEventInfo NVARCHAR(4000),\r\n\r\n\t\t\t\tstart_time DATETIME,\r\n\r\n\t\t\t\tsession_number INT IDENTITY(1,1) NOT NULL PRIMARY KEY\r\n\r\n\t\t\t);\r\n\r\n\r\n\r\n\t\t\tDECLARE buffer_cursor\r\n\r\n\t\t\tCURSOR LOCAL FAST_FORWARD\r\n\r\n\t\t\tFOR \r\n\r\n\t\t\t\tSELECT \r\n\r\n\t\t\t\t\tsession_id,\r\n\r\n\t\t\t\t\tMAX(start_time) AS start_time\r\n\r\n\t\t\t\tFROM #sessions\r\n\r\n\t\t\t\tWHERE\r\n\r\n\t\t\t\t\trecursion = 1\r\n\r\n\t\t\t\tGROUP BY\r\n\r\n\t\t\t\t\tsession_id\r\n\r\n\t\t\t\tORDER BY\r\n\r\n\t\t\t\t\tsession_id\r\n\r\n\t\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\r\n\r\n\t\t\tOPEN buffer_cursor;\r\n\r\n\r\n\r\n\t\t\tFETCH NEXT FROM buffer_cursor\r\n\r\n\t\t\tINTO \r\n\r\n\t\t\t\t@session_id,\r\n\r\n\t\t\t\t@start_time;\r\n\r\n\r\n\r\n\t\t\tWHILE @@FETCH_STATUS = 0\r\n\r\n\t\t\tBEGIN;\r\n\r\n\t\t\t\tBEGIN TRY;\r\n\r\n\t\t\t\t\t--In SQL Server 2008, DBCC INPUTBUFFER will throw \r\n\r\n\t\t\t\t\t--an exception if the session no longer exists\r\n\r\n\t\t\t\t\tINSERT @buffer_results\r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\tEventType,\r\n\r\n\t\t\t\t\t\tParameters,\r\n\r\n\t\t\t\t\t\tEventInfo\r\n\r\n\t\t\t\t\t)\r\n\r\n\t\t\t\t\tEXEC sp_executesql\r\n\r\n\t\t\t\t\t\tN&#39;DBCC INPUTBUFFER(@session_id) WITH NO_INFOMSGS;&#39;,\r\n\r\n\t\t\t\t\t\tN&#39;@session_id SMALLINT&#39;,\r\n\r\n\t\t\t\t\t\t@session_id;\r\n\r\n\r\n\r\n\t\t\t\t\tUPDATE br\r\n\r\n\t\t\t\t\tSET\r\n\r\n\t\t\t\t\t\tbr.start_time = @start_time\r\n\r\n\t\t\t\t\tFROM @buffer_results AS br\r\n\r\n\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\tbr.session_number = \r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tSELECT MAX(br2.session_number)\r\n\r\n\t\t\t\t\t\t\tFROM @buffer_results br2\r\n\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\tEND TRY\r\n\r\n\t\t\t\tBEGIN CATCH\r\n\r\n\t\t\t\tEND CATCH;\r\n\r\n\r\n\r\n\t\t\t\tFETCH NEXT FROM buffer_cursor\r\n\r\n\t\t\t\tINTO \r\n\r\n\t\t\t\t\t@session_id,\r\n\r\n\t\t\t\t\t@start_time;\r\n\r\n\t\t\tEND;\r\n\r\n\r\n\r\n\t\t\tUPDATE s\r\n\r\n\t\t\tSET\r\n\r\n\t\t\t\tsql_command = \r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tSELECT \r\n\r\n\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tNVARCHAR(MAX),\r\n\r\n\t\t\t\t\t\t\t\t\tN&#39;--&#39; + NCHAR(13) + NCHAR(10) + br.EventInfo + NCHAR(13) + NCHAR(10) + N&#39;--&#39; COLLATE Latin1_General_Bin2\r\n\r\n\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\tNCHAR(31),N&#39;?&#39;),NCHAR(30),N&#39;?&#39;),NCHAR(29),N&#39;?&#39;),NCHAR(28),N&#39;?&#39;),NCHAR(27),N&#39;?&#39;),NCHAR(26),N&#39;?&#39;),NCHAR(25),N&#39;?&#39;),NCHAR(24),N&#39;?&#39;),NCHAR(23),N&#39;?&#39;),NCHAR(22),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\tNCHAR(21),N&#39;?&#39;),NCHAR(20),N&#39;?&#39;),NCHAR(19),N&#39;?&#39;),NCHAR(18),N&#39;?&#39;),NCHAR(17),N&#39;?&#39;),NCHAR(16),N&#39;?&#39;),NCHAR(15),N&#39;?&#39;),NCHAR(14),N&#39;?&#39;),NCHAR(12),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\tNCHAR(11),N&#39;?&#39;),NCHAR(8),N&#39;?&#39;),NCHAR(7),N&#39;?&#39;),NCHAR(6),N&#39;?&#39;),NCHAR(5),N&#39;?&#39;),NCHAR(4),N&#39;?&#39;),NCHAR(3),N&#39;?&#39;),NCHAR(2),N&#39;?&#39;),NCHAR(1),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\tNCHAR(0),\r\n\r\n\t\t\t\t\t\t\tN&#39;&#39;\r\n\r\n\t\t\t\t\t\t) AS [processing-instruction(query)]\r\n\r\n\t\t\t\t\tFROM @buffer_results AS br\r\n\r\n\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\tbr.session_number = s.session_number\r\n\r\n\t\t\t\t\t\tAND br.start_time = s.start_time\r\n\r\n\t\t\t\t\t\tAND \r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\ts.start_time = s.last_request_start_time\r\n\r\n\t\t\t\t\t\t\t\tAND EXISTS\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tSELECT *\r\n\r\n\t\t\t\t\t\t\t\t\tFROM sys.dm_exec_requests r2\r\n\r\n\t\t\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\t\t\tr2.session_id = s.session_id\r\n\r\n\t\t\t\t\t\t\t\t\t\tAND r2.request_id = s.request_id\r\n\r\n\t\t\t\t\t\t\t\t\t\tAND r2.start_time = s.start_time\r\n\r\n\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\tOR \r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\ts.request_id = 0\r\n\r\n\t\t\t\t\t\t\t\tAND EXISTS\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tSELECT *\r\n\r\n\t\t\t\t\t\t\t\t\tFROM sys.dm_exec_sessions s2\r\n\r\n\t\t\t\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\t\t\t\ts2.session_id = s.session_id\r\n\r\n\t\t\t\t\t\t\t\t\t\tAND s2.last_request_start_time = s.last_request_start_time\r\n\r\n\t\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\tPATH(&#39;&#39;),\r\n\r\n\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t)\r\n\r\n\t\t\tFROM #sessions AS s\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\trecursion = 1\r\n\r\n\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\r\n\r\n\t\t\tCLOSE buffer_cursor;\r\n\r\n\t\t\tDEALLOCATE buffer_cursor;\r\n\r\n\t\tEND;\r\n\r\n\r\n\r\n\t\tIF \r\n\r\n\t\t\t@get_plans &gt;= 1 \r\n\r\n\t\t\tAND @recursion = 1\r\n\r\n\t\t\tAND @output_column_list LIKE &#39;%|[query_plan|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\tBEGIN;\r\n\r\n\t\t\tDECLARE plan_cursor\r\n\r\n\t\t\tCURSOR LOCAL FAST_FORWARD\r\n\r\n\t\t\tFOR \r\n\r\n\t\t\t\tSELECT\r\n\r\n\t\t\t\t\tsession_id,\r\n\r\n\t\t\t\t\trequest_id,\r\n\r\n\t\t\t\t\tplan_handle,\r\n\r\n\t\t\t\t\tstatement_start_offset,\r\n\r\n\t\t\t\t\tstatement_end_offset\r\n\r\n\t\t\t\tFROM #sessions\r\n\r\n\t\t\t\tWHERE\r\n\r\n\t\t\t\t\trecursion = 1\r\n\r\n\t\t\t\t\tAND plan_handle IS NOT NULL\r\n\r\n\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\r\n\r\n\t\t\tOPEN plan_cursor;\r\n\r\n\r\n\r\n\t\t\tFETCH NEXT FROM plan_cursor\r\n\r\n\t\t\tINTO \r\n\r\n\t\t\t\t@session_id,\r\n\r\n\t\t\t\t@request_id,\r\n\r\n\t\t\t\t@plan_handle,\r\n\r\n\t\t\t\t@statement_start_offset,\r\n\r\n\t\t\t\t@statement_end_offset;\r\n\r\n\r\n\r\n\t\t\t--Wait up to 5 ms for a query plan, then give up\r\n\r\n\t\t\tSET LOCK_TIMEOUT 5;\r\n\r\n\r\n\r\n\t\t\tWHILE @@FETCH_STATUS = 0\r\n\r\n\t\t\tBEGIN;\r\n\r\n\t\t\t\tBEGIN TRY;\r\n\r\n\t\t\t\t\tUPDATE s\r\n\r\n\t\t\t\t\tSET\r\n\r\n\t\t\t\t\t\ts.query_plan =\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tSELECT\r\n\r\n\t\t\t\t\t\t\t\tCONVERT(xml, query_plan)\r\n\r\n\t\t\t\t\t\t\tFROM sys.dm_exec_text_query_plan\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t@plan_handle, \r\n\r\n\t\t\t\t\t\t\t\tCASE @get_plans\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t@statement_start_offset\r\n\r\n\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t0\r\n\r\n\t\t\t\t\t\t\t\tEND, \r\n\r\n\t\t\t\t\t\t\t\tCASE @get_plans\r\n\r\n\t\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t@statement_end_offset\r\n\r\n\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t-1\r\n\r\n\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\tFROM #sessions AS s\r\n\r\n\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\ts.session_id = @session_id\r\n\r\n\t\t\t\t\t\tAND s.request_id = @request_id\r\n\r\n\t\t\t\t\t\tAND s.recursion = 1\r\n\r\n\t\t\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\t\t\t\tEND TRY\r\n\r\n\t\t\t\tBEGIN CATCH;\r\n\r\n\t\t\t\t\tIF ERROR_NUMBER() = 6335\r\n\r\n\t\t\t\t\tBEGIN;\r\n\r\n\t\t\t\t\t\tUPDATE s\r\n\r\n\t\t\t\t\t\tSET\r\n\r\n\t\t\t\t\t\t\ts.query_plan =\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tSELECT\r\n\r\n\t\t\t\t\t\t\t\t\tN&#39;--&#39; + NCHAR(13) + NCHAR(10) + \r\n\r\n\t\t\t\t\t\t\t\t\tN&#39;-- Could not render showplan due to XML data type limitations. &#39; + NCHAR(13) + NCHAR(10) + \r\n\r\n\t\t\t\t\t\t\t\t\tN&#39;-- To see the graphical plan save the XML below as a .SQLPLAN file and re-open in SSMS.&#39; + NCHAR(13) + NCHAR(10) +\r\n\r\n\t\t\t\t\t\t\t\t\tN&#39;--&#39; + NCHAR(13) + NCHAR(10) +\r\n\r\n\t\t\t\t\t\t\t\t\t\tREPLACE(qp.query_plan, N&#39;&lt;RelOp&#39;, NCHAR(13)+NCHAR(10)+N&#39;&lt;RelOp&#39;) + \r\n\r\n\t\t\t\t\t\t\t\t\t\tNCHAR(13) + NCHAR(10) + N&#39;--&#39; COLLATE Latin1_General_Bin2 AS [processing-instruction(query_plan)]\r\n\r\n\t\t\t\t\t\t\t\tFROM sys.dm_exec_text_query_plan\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t@plan_handle, \r\n\r\n\t\t\t\t\t\t\t\t\tCASE @get_plans\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t@statement_start_offset\r\n\r\n\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t0\r\n\r\n\t\t\t\t\t\t\t\t\tEND, \r\n\r\n\t\t\t\t\t\t\t\t\tCASE @get_plans\r\n\r\n\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t@statement_end_offset\r\n\r\n\t\t\t\t\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t-1\r\n\r\n\t\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\t\t\t) AS qp\r\n\r\n\t\t\t\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\t\t\t\tPATH(&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\t\tFROM #sessions AS s\r\n\r\n\t\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\t\ts.session_id = @session_id\r\n\r\n\t\t\t\t\t\t\tAND s.request_id = @request_id\r\n\r\n\t\t\t\t\t\t\tAND s.recursion = 1\r\n\r\n\t\t\t\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\t\t\t\t\tEND;\r\n\r\n\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\tBEGIN;\r\n\r\n\t\t\t\t\t\tUPDATE s\r\n\r\n\t\t\t\t\t\tSET\r\n\r\n\t\t\t\t\t\t\ts.query_plan = \r\n\r\n\t\t\t\t\t\t\t\tCASE ERROR_NUMBER() \r\n\r\n\t\t\t\t\t\t\t\t\tWHEN 1222 THEN &#39;&lt;timeout_exceeded \/&gt;&#39;\r\n\r\n\t\t\t\t\t\t\t\t\tELSE &#39;&lt;error message=&quot;&#39; + ERROR_MESSAGE() + &#39;&quot; \/&gt;&#39;\r\n\r\n\t\t\t\t\t\t\t\tEND\r\n\r\n\t\t\t\t\t\tFROM #sessions AS s\r\n\r\n\t\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\t\ts.session_id = @session_id\r\n\r\n\t\t\t\t\t\t\tAND s.request_id = @request_id\r\n\r\n\t\t\t\t\t\t\tAND s.recursion = 1\r\n\r\n\t\t\t\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\t\t\t\t\tEND;\r\n\r\n\t\t\t\tEND CATCH;\r\n\r\n\r\n\r\n\t\t\t\tFETCH NEXT FROM plan_cursor\r\n\r\n\t\t\t\tINTO\r\n\r\n\t\t\t\t\t@session_id,\r\n\r\n\t\t\t\t\t@request_id,\r\n\r\n\t\t\t\t\t@plan_handle,\r\n\r\n\t\t\t\t\t@statement_start_offset,\r\n\r\n\t\t\t\t\t@statement_end_offset;\r\n\r\n\t\t\tEND;\r\n\r\n\r\n\r\n\t\t\t--Return this to the default\r\n\r\n\t\t\tSET LOCK_TIMEOUT -1;\r\n\r\n\r\n\r\n\t\t\tCLOSE plan_cursor;\r\n\r\n\t\t\tDEALLOCATE plan_cursor;\r\n\r\n\t\tEND;\r\n\r\n\r\n\r\n\t\tIF \r\n\r\n\t\t\t@get_locks = 1 \r\n\r\n\t\t\tAND @recursion = 1\r\n\r\n\t\t\tAND @output_column_list LIKE &#39;%|[locks|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\tBEGIN;\r\n\r\n\t\t\tDECLARE locks_cursor\r\n\r\n\t\t\tCURSOR LOCAL FAST_FORWARD\r\n\r\n\t\t\tFOR \r\n\r\n\t\t\t\tSELECT DISTINCT\r\n\r\n\t\t\t\t\tdatabase_name\r\n\r\n\t\t\t\tFROM #locks\r\n\r\n\t\t\t\tWHERE\r\n\r\n\t\t\t\t\tEXISTS\r\n\r\n\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\tSELECT *\r\n\r\n\t\t\t\t\t\tFROM #sessions AS s\r\n\r\n\t\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\t\ts.session_id = #locks.session_id\r\n\r\n\t\t\t\t\t\t\tAND recursion = 1\r\n\r\n\t\t\t\t\t)\r\n\r\n\t\t\t\t\tAND database_name &lt;&gt; &#39;(null)&#39;\r\n\r\n\t\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\r\n\r\n\t\t\tOPEN locks_cursor;\r\n\r\n\r\n\r\n\t\t\tFETCH NEXT FROM locks_cursor\r\n\r\n\t\t\tINTO \r\n\r\n\t\t\t\t@database_name;\r\n\r\n\r\n\r\n\t\t\tWHILE @@FETCH_STATUS = 0\r\n\r\n\t\t\tBEGIN;\r\n\r\n\t\t\t\tBEGIN TRY;\r\n\r\n\t\t\t\t\tSET @sql_n = CONVERT(NVARCHAR(MAX), &#39;&#39;) +\r\n\r\n\t\t\t\t\t\t&#39;UPDATE l &#39; +\r\n\r\n\t\t\t\t\t\t&#39;SET &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;object_name = &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;REPLACE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;o.name COLLATE Latin1_General_Bin2, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(31),N&#39;&#39;?&#39;&#39;),NCHAR(30),N&#39;&#39;?&#39;&#39;),NCHAR(29),N&#39;&#39;?&#39;&#39;),NCHAR(28),N&#39;&#39;?&#39;&#39;),NCHAR(27),N&#39;&#39;?&#39;&#39;),NCHAR(26),N&#39;&#39;?&#39;&#39;),NCHAR(25),N&#39;&#39;?&#39;&#39;),NCHAR(24),N&#39;&#39;?&#39;&#39;),NCHAR(23),N&#39;&#39;?&#39;&#39;),NCHAR(22),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(21),N&#39;&#39;?&#39;&#39;),NCHAR(20),N&#39;&#39;?&#39;&#39;),NCHAR(19),N&#39;&#39;?&#39;&#39;),NCHAR(18),N&#39;&#39;?&#39;&#39;),NCHAR(17),N&#39;&#39;?&#39;&#39;),NCHAR(16),N&#39;&#39;?&#39;&#39;),NCHAR(15),N&#39;&#39;?&#39;&#39;),NCHAR(14),N&#39;&#39;?&#39;&#39;),NCHAR(12),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(11),N&#39;&#39;?&#39;&#39;),NCHAR(8),N&#39;&#39;?&#39;&#39;),NCHAR(7),N&#39;&#39;?&#39;&#39;),NCHAR(6),N&#39;&#39;?&#39;&#39;),NCHAR(5),N&#39;&#39;?&#39;&#39;),NCHAR(4),N&#39;&#39;?&#39;&#39;),NCHAR(3),N&#39;&#39;?&#39;&#39;),NCHAR(2),N&#39;&#39;?&#39;&#39;),NCHAR(1),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;NCHAR(0), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\tN&#39;&#39;&#39;&#39;&#39; &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;index_name = &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;REPLACE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;i.name COLLATE Latin1_General_Bin2, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(31),N&#39;&#39;?&#39;&#39;),NCHAR(30),N&#39;&#39;?&#39;&#39;),NCHAR(29),N&#39;&#39;?&#39;&#39;),NCHAR(28),N&#39;&#39;?&#39;&#39;),NCHAR(27),N&#39;&#39;?&#39;&#39;),NCHAR(26),N&#39;&#39;?&#39;&#39;),NCHAR(25),N&#39;&#39;?&#39;&#39;),NCHAR(24),N&#39;&#39;?&#39;&#39;),NCHAR(23),N&#39;&#39;?&#39;&#39;),NCHAR(22),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(21),N&#39;&#39;?&#39;&#39;),NCHAR(20),N&#39;&#39;?&#39;&#39;),NCHAR(19),N&#39;&#39;?&#39;&#39;),NCHAR(18),N&#39;&#39;?&#39;&#39;),NCHAR(17),N&#39;&#39;?&#39;&#39;),NCHAR(16),N&#39;&#39;?&#39;&#39;),NCHAR(15),N&#39;&#39;?&#39;&#39;),NCHAR(14),N&#39;&#39;?&#39;&#39;),NCHAR(12),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(11),N&#39;&#39;?&#39;&#39;),NCHAR(8),N&#39;&#39;?&#39;&#39;),NCHAR(7),N&#39;&#39;?&#39;&#39;),NCHAR(6),N&#39;&#39;?&#39;&#39;),NCHAR(5),N&#39;&#39;?&#39;&#39;),NCHAR(4),N&#39;&#39;?&#39;&#39;),NCHAR(3),N&#39;&#39;?&#39;&#39;),NCHAR(2),N&#39;&#39;?&#39;&#39;),NCHAR(1),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;NCHAR(0), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\tN&#39;&#39;&#39;&#39;&#39; &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;schema_name = &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;REPLACE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;s.name COLLATE Latin1_General_Bin2, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(31),N&#39;&#39;?&#39;&#39;),NCHAR(30),N&#39;&#39;?&#39;&#39;),NCHAR(29),N&#39;&#39;?&#39;&#39;),NCHAR(28),N&#39;&#39;?&#39;&#39;),NCHAR(27),N&#39;&#39;?&#39;&#39;),NCHAR(26),N&#39;&#39;?&#39;&#39;),NCHAR(25),N&#39;&#39;?&#39;&#39;),NCHAR(24),N&#39;&#39;?&#39;&#39;),NCHAR(23),N&#39;&#39;?&#39;&#39;),NCHAR(22),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(21),N&#39;&#39;?&#39;&#39;),NCHAR(20),N&#39;&#39;?&#39;&#39;),NCHAR(19),N&#39;&#39;?&#39;&#39;),NCHAR(18),N&#39;&#39;?&#39;&#39;),NCHAR(17),N&#39;&#39;?&#39;&#39;),NCHAR(16),N&#39;&#39;?&#39;&#39;),NCHAR(15),N&#39;&#39;?&#39;&#39;),NCHAR(14),N&#39;&#39;?&#39;&#39;),NCHAR(12),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(11),N&#39;&#39;?&#39;&#39;),NCHAR(8),N&#39;&#39;?&#39;&#39;),NCHAR(7),N&#39;&#39;?&#39;&#39;),NCHAR(6),N&#39;&#39;?&#39;&#39;),NCHAR(5),N&#39;&#39;?&#39;&#39;),NCHAR(4),N&#39;&#39;?&#39;&#39;),NCHAR(3),N&#39;&#39;?&#39;&#39;),NCHAR(2),N&#39;&#39;?&#39;&#39;),NCHAR(1),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;NCHAR(0), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\tN&#39;&#39;&#39;&#39;&#39; &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;principal_name = &#39; + \r\n\r\n\t\t\t\t\t\t\t\t&#39;REPLACE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;dp.name COLLATE Latin1_General_Bin2, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(31),N&#39;&#39;?&#39;&#39;),NCHAR(30),N&#39;&#39;?&#39;&#39;),NCHAR(29),N&#39;&#39;?&#39;&#39;),NCHAR(28),N&#39;&#39;?&#39;&#39;),NCHAR(27),N&#39;&#39;?&#39;&#39;),NCHAR(26),N&#39;&#39;?&#39;&#39;),NCHAR(25),N&#39;&#39;?&#39;&#39;),NCHAR(24),N&#39;&#39;?&#39;&#39;),NCHAR(23),N&#39;&#39;?&#39;&#39;),NCHAR(22),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(21),N&#39;&#39;?&#39;&#39;),NCHAR(20),N&#39;&#39;?&#39;&#39;),NCHAR(19),N&#39;&#39;?&#39;&#39;),NCHAR(18),N&#39;&#39;?&#39;&#39;),NCHAR(17),N&#39;&#39;?&#39;&#39;),NCHAR(16),N&#39;&#39;?&#39;&#39;),NCHAR(15),N&#39;&#39;?&#39;&#39;),NCHAR(14),N&#39;&#39;?&#39;&#39;),NCHAR(12),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(11),N&#39;&#39;?&#39;&#39;),NCHAR(8),N&#39;&#39;?&#39;&#39;),NCHAR(7),N&#39;&#39;?&#39;&#39;),NCHAR(6),N&#39;&#39;?&#39;&#39;),NCHAR(5),N&#39;&#39;?&#39;&#39;),NCHAR(4),N&#39;&#39;?&#39;&#39;),NCHAR(3),N&#39;&#39;?&#39;&#39;),NCHAR(2),N&#39;&#39;?&#39;&#39;),NCHAR(1),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;NCHAR(0), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\tN&#39;&#39;&#39;&#39;&#39; &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;) &#39; +\r\n\r\n\t\t\t\t\t\t&#39;FROM #locks AS l &#39; +\r\n\r\n\t\t\t\t\t\t&#39;LEFT OUTER JOIN &#39; + QUOTENAME(@database_name) + &#39;.sys.allocation_units AS au ON &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;au.allocation_unit_id = l.allocation_unit_id &#39; +\r\n\r\n\t\t\t\t\t\t&#39;LEFT OUTER JOIN &#39; + QUOTENAME(@database_name) + &#39;.sys.partitions AS p ON &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;p.hobt_id = &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;COALESCE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;l.hobt_id, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;WHEN au.type IN (1, 3) THEN au.container_id &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;ELSE NULL &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;END &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;) &#39; +\r\n\r\n\t\t\t\t\t\t&#39;LEFT OUTER JOIN &#39; + QUOTENAME(@database_name) + &#39;.sys.partitions AS p1 ON &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;l.hobt_id IS NULL &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;AND au.type = 2 &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;AND p1.partition_id = au.container_id &#39; +\r\n\r\n\t\t\t\t\t\t&#39;LEFT OUTER JOIN &#39; + QUOTENAME(@database_name) + &#39;.sys.objects AS o ON &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;o.object_id = COALESCE(l.object_id, p.object_id, p1.object_id) &#39; +\r\n\r\n\t\t\t\t\t\t&#39;LEFT OUTER JOIN &#39; + QUOTENAME(@database_name) + &#39;.sys.indexes AS i ON &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;i.object_id = COALESCE(l.object_id, p.object_id, p1.object_id) &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;AND i.index_id = COALESCE(l.index_id, p.index_id, p1.index_id) &#39; +\r\n\r\n\t\t\t\t\t\t&#39;LEFT OUTER JOIN &#39; + QUOTENAME(@database_name) + &#39;.sys.schemas AS s ON &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;s.schema_id = COALESCE(l.schema_id, o.schema_id) &#39; +\r\n\r\n\t\t\t\t\t\t&#39;LEFT OUTER JOIN &#39; + QUOTENAME(@database_name) + &#39;.sys.database_principals AS dp ON &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;dp.principal_id = l.principal_id &#39; +\r\n\r\n\t\t\t\t\t\t&#39;WHERE &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;l.database_name = @database_name &#39; +\r\n\r\n\t\t\t\t\t\t&#39;OPTION (KEEPFIXED PLAN); &#39;;\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tEXEC sp_executesql\r\n\r\n\t\t\t\t\t\t@sql_n,\r\n\r\n\t\t\t\t\t\tN&#39;@database_name sysname&#39;,\r\n\r\n\t\t\t\t\t\t@database_name;\r\n\r\n\t\t\t\tEND TRY\r\n\r\n\t\t\t\tBEGIN CATCH;\r\n\r\n\t\t\t\t\tUPDATE #locks\r\n\r\n\t\t\t\t\tSET\r\n\r\n\t\t\t\t\t\tquery_error = \r\n\r\n\t\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tNVARCHAR(MAX), \r\n\r\n\t\t\t\t\t\t\t\t\t\tERROR_MESSAGE() COLLATE Latin1_General_Bin2\r\n\r\n\t\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(31),N&#39;?&#39;),NCHAR(30),N&#39;?&#39;),NCHAR(29),N&#39;?&#39;),NCHAR(28),N&#39;?&#39;),NCHAR(27),N&#39;?&#39;),NCHAR(26),N&#39;?&#39;),NCHAR(25),N&#39;?&#39;),NCHAR(24),N&#39;?&#39;),NCHAR(23),N&#39;?&#39;),NCHAR(22),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(21),N&#39;?&#39;),NCHAR(20),N&#39;?&#39;),NCHAR(19),N&#39;?&#39;),NCHAR(18),N&#39;?&#39;),NCHAR(17),N&#39;?&#39;),NCHAR(16),N&#39;?&#39;),NCHAR(15),N&#39;?&#39;),NCHAR(14),N&#39;?&#39;),NCHAR(12),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(11),N&#39;?&#39;),NCHAR(8),N&#39;?&#39;),NCHAR(7),N&#39;?&#39;),NCHAR(6),N&#39;?&#39;),NCHAR(5),N&#39;?&#39;),NCHAR(4),N&#39;?&#39;),NCHAR(3),N&#39;?&#39;),NCHAR(2),N&#39;?&#39;),NCHAR(1),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\tNCHAR(0),\r\n\r\n\t\t\t\t\t\t\t\tN&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\tdatabase_name = @database_name\r\n\r\n\t\t\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\t\t\t\tEND CATCH;\r\n\r\n\r\n\r\n\t\t\t\tFETCH NEXT FROM locks_cursor\r\n\r\n\t\t\t\tINTO\r\n\r\n\t\t\t\t\t@database_name;\r\n\r\n\t\t\tEND;\r\n\r\n\r\n\r\n\t\t\tCLOSE locks_cursor;\r\n\r\n\t\t\tDEALLOCATE locks_cursor;\r\n\r\n\r\n\r\n\t\t\tCREATE CLUSTERED INDEX IX_SRD ON #locks (session_id, request_id, database_name);\r\n\r\n\r\n\r\n\t\t\tUPDATE s\r\n\r\n\t\t\tSET \r\n\r\n\t\t\t\ts.locks =\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tSELECT \r\n\r\n\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tNVARCHAR(MAX), \r\n\r\n\t\t\t\t\t\t\t\t\tl1.database_name COLLATE Latin1_General_Bin2\r\n\r\n\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\tNCHAR(31),N&#39;?&#39;),NCHAR(30),N&#39;?&#39;),NCHAR(29),N&#39;?&#39;),NCHAR(28),N&#39;?&#39;),NCHAR(27),N&#39;?&#39;),NCHAR(26),N&#39;?&#39;),NCHAR(25),N&#39;?&#39;),NCHAR(24),N&#39;?&#39;),NCHAR(23),N&#39;?&#39;),NCHAR(22),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\tNCHAR(21),N&#39;?&#39;),NCHAR(20),N&#39;?&#39;),NCHAR(19),N&#39;?&#39;),NCHAR(18),N&#39;?&#39;),NCHAR(17),N&#39;?&#39;),NCHAR(16),N&#39;?&#39;),NCHAR(15),N&#39;?&#39;),NCHAR(14),N&#39;?&#39;),NCHAR(12),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\tNCHAR(11),N&#39;?&#39;),NCHAR(8),N&#39;?&#39;),NCHAR(7),N&#39;?&#39;),NCHAR(6),N&#39;?&#39;),NCHAR(5),N&#39;?&#39;),NCHAR(4),N&#39;?&#39;),NCHAR(3),N&#39;?&#39;),NCHAR(2),N&#39;?&#39;),NCHAR(1),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\tNCHAR(0),\r\n\r\n\t\t\t\t\t\t\tN&#39;&#39;\r\n\r\n\t\t\t\t\t\t) AS [Database\/@name],\r\n\r\n\t\t\t\t\t\tMIN(l1.query_error) AS [Database\/@query_error],\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tSELECT \r\n\r\n\t\t\t\t\t\t\t\tl2.request_mode AS [Lock\/@request_mode],\r\n\r\n\t\t\t\t\t\t\t\tl2.request_status AS [Lock\/@request_status],\r\n\r\n\t\t\t\t\t\t\t\tCOUNT(*) AS [Lock\/@request_count]\r\n\r\n\t\t\t\t\t\t\tFROM #locks AS l2\r\n\r\n\t\t\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\t\t\tl1.session_id = l2.session_id\r\n\r\n\t\t\t\t\t\t\t\tAND l1.request_id = l2.request_id\r\n\r\n\t\t\t\t\t\t\t\tAND l2.database_name = l1.database_name\r\n\r\n\t\t\t\t\t\t\t\tAND l2.resource_type = &#39;DATABASE&#39;\r\n\r\n\t\t\t\t\t\t\tGROUP BY\r\n\r\n\t\t\t\t\t\t\t\tl2.request_mode,\r\n\r\n\t\t\t\t\t\t\t\tl2.request_status\r\n\r\n\t\t\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\t\t\tPATH(&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t\t\t) AS [Database\/Locks],\r\n\r\n\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\tSELECT\r\n\r\n\t\t\t\t\t\t\t\tCOALESCE(l3.object_name, &#39;(null)&#39;) AS [Object\/@name],\r\n\r\n\t\t\t\t\t\t\t\tl3.schema_name AS [Object\/@schema_name],\r\n\r\n\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\tSELECT\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.resource_type AS [Lock\/@resource_type],\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.page_type AS [Lock\/@page_type],\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.index_name AS [Lock\/@index_name],\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE \r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN l4.object_name IS NULL THEN l4.schema_name\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND AS [Lock\/@schema_name],\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.principal_name AS [Lock\/@principal_name],\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.resource_description AS [Lock\/@resource_description],\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.request_mode AS [Lock\/@request_mode],\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.request_status AS [Lock\/@request_status],\r\n\r\n\t\t\t\t\t\t\t\t\t\tSUM(l4.request_count) AS [Lock\/@request_count]\r\n\r\n\t\t\t\t\t\t\t\t\tFROM #locks AS l4\r\n\r\n\t\t\t\t\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.session_id = l3.session_id\r\n\r\n\t\t\t\t\t\t\t\t\t\tAND l4.request_id = l3.request_id\r\n\r\n\t\t\t\t\t\t\t\t\t\tAND l3.database_name = l4.database_name\r\n\r\n\t\t\t\t\t\t\t\t\t\tAND COALESCE(l3.object_name, &#39;(null)&#39;) = COALESCE(l4.object_name, &#39;(null)&#39;)\r\n\r\n\t\t\t\t\t\t\t\t\t\tAND COALESCE(l3.schema_name, &#39;&#39;) = COALESCE(l4.schema_name, &#39;&#39;)\r\n\r\n\t\t\t\t\t\t\t\t\t\tAND l4.resource_type &lt;&gt; &#39;DATABASE&#39;\r\n\r\n\t\t\t\t\t\t\t\t\tGROUP BY\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.resource_type,\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.page_type,\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.index_name,\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE \r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN l4.object_name IS NULL THEN l4.schema_name\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE NULL\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND,\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.principal_name,\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.resource_description,\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.request_mode,\r\n\r\n\t\t\t\t\t\t\t\t\t\tl4.request_status\r\n\r\n\t\t\t\t\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\t\t\t\t\tPATH(&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t\t\t\t\t) AS [Object\/Locks]\r\n\r\n\t\t\t\t\t\t\tFROM #locks AS l3\r\n\r\n\t\t\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\t\t\tl3.session_id = l1.session_id\r\n\r\n\t\t\t\t\t\t\t\tAND l3.request_id = l1.request_id\r\n\r\n\t\t\t\t\t\t\t\tAND l3.database_name = l1.database_name\r\n\r\n\t\t\t\t\t\t\t\tAND l3.resource_type &lt;&gt; &#39;DATABASE&#39;\r\n\r\n\t\t\t\t\t\t\tGROUP BY \r\n\r\n\t\t\t\t\t\t\t\tl3.session_id,\r\n\r\n\t\t\t\t\t\t\t\tl3.request_id,\r\n\r\n\t\t\t\t\t\t\t\tl3.database_name,\r\n\r\n\t\t\t\t\t\t\t\tCOALESCE(l3.object_name, &#39;(null)&#39;),\r\n\r\n\t\t\t\t\t\t\t\tl3.schema_name\r\n\r\n\t\t\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\t\t\tPATH(&#39;&#39;),\r\n\r\n\t\t\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t\t\t) AS [Database\/Objects]\r\n\r\n\t\t\t\t\tFROM #locks AS l1\r\n\r\n\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\tl1.session_id = s.session_id\r\n\r\n\t\t\t\t\t\tAND l1.request_id = s.request_id\r\n\r\n\t\t\t\t\t\tAND l1.start_time IN (s.start_time, s.last_request_start_time)\r\n\r\n\t\t\t\t\t\tAND s.recursion = 1\r\n\r\n\t\t\t\t\tGROUP BY \r\n\r\n\t\t\t\t\t\tl1.session_id,\r\n\r\n\t\t\t\t\t\tl1.request_id,\r\n\r\n\t\t\t\t\t\tl1.database_name\r\n\r\n\t\t\t\t\tFOR XML\r\n\r\n\t\t\t\t\t\tPATH(&#39;&#39;),\r\n\r\n\t\t\t\t\t\tTYPE\r\n\r\n\t\t\t\t)\r\n\r\n\t\t\tFROM #sessions s\r\n\r\n\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\t\tEND;\r\n\r\n\r\n\r\n\t\tIF \r\n\r\n\t\t\t@find_block_leaders = 1\r\n\r\n\t\t\tAND @recursion = 1\r\n\r\n\t\t\tAND @output_column_list LIKE &#39;%|[blocked_session_count|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\tBEGIN;\r\n\r\n\t\t\tWITH\r\n\r\n\t\t\tblockers AS\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tSELECT\r\n\r\n\t\t\t\t\tsession_id,\r\n\r\n\t\t\t\t\tsession_id AS top_level_session_id\r\n\r\n\t\t\t\tFROM #sessions\r\n\r\n\t\t\t\tWHERE\r\n\r\n\t\t\t\t\trecursion = 1\r\n\r\n\r\n\r\n\t\t\t\tUNION ALL\r\n\r\n\r\n\r\n\t\t\t\tSELECT\r\n\r\n\t\t\t\t\ts.session_id,\r\n\r\n\t\t\t\t\tb.top_level_session_id\r\n\r\n\t\t\t\tFROM blockers AS b\r\n\r\n\t\t\t\tJOIN #sessions AS s ON\r\n\r\n\t\t\t\t\ts.blocking_session_id = b.session_id\r\n\r\n\t\t\t\t\tAND s.recursion = 1\r\n\r\n\t\t\t)\r\n\r\n\t\t\tUPDATE s\r\n\r\n\t\t\tSET\r\n\r\n\t\t\t\ts.blocked_session_count = x.blocked_session_count\r\n\r\n\t\t\tFROM #sessions AS s\r\n\r\n\t\t\tJOIN\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tSELECT\r\n\r\n\t\t\t\t\tb.top_level_session_id AS session_id,\r\n\r\n\t\t\t\t\tCOUNT(*) - 1 AS blocked_session_count\r\n\r\n\t\t\t\tFROM blockers AS b\r\n\r\n\t\t\t\tGROUP BY\r\n\r\n\t\t\t\t\tb.top_level_session_id\r\n\r\n\t\t\t) x ON\r\n\r\n\t\t\t\ts.session_id = x.session_id\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\ts.recursion = 1;\r\n\r\n\t\tEND;\r\n\r\n\r\n\r\n\t\tIF\r\n\r\n\t\t\t@get_task_info = 2\r\n\r\n\t\t\tAND @output_column_list LIKE &#39;%|[additional_info|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\tAND @recursion = 1\r\n\r\n\t\tBEGIN;\r\n\r\n\t\t\tCREATE TABLE #blocked_requests\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tsession_id SMALLINT NOT NULL,\r\n\r\n\t\t\t\trequest_id INT NOT NULL,\r\n\r\n\t\t\t\tdatabase_name sysname NOT NULL,\r\n\r\n\t\t\t\tobject_id INT,\r\n\r\n\t\t\t\thobt_id BIGINT,\r\n\r\n\t\t\t\tschema_id INT,\r\n\r\n\t\t\t\tschema_name sysname NULL,\r\n\r\n\t\t\t\tobject_name sysname NULL,\r\n\r\n\t\t\t\tquery_error NVARCHAR(2048),\r\n\r\n\t\t\t\tPRIMARY KEY (database_name, session_id, request_id)\r\n\r\n\t\t\t);\r\n\r\n\r\n\r\n\t\t\tCREATE STATISTICS s_database_name ON #blocked_requests (database_name)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_schema_name ON #blocked_requests (schema_name)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_object_name ON #blocked_requests (object_name)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\tCREATE STATISTICS s_query_error ON #blocked_requests (query_error)\r\n\r\n\t\t\tWITH SAMPLE 0 ROWS, NORECOMPUTE;\r\n\r\n\t\t\r\n\r\n\t\t\tINSERT #blocked_requests\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tsession_id,\r\n\r\n\t\t\t\trequest_id,\r\n\r\n\t\t\t\tdatabase_name,\r\n\r\n\t\t\t\tobject_id,\r\n\r\n\t\t\t\thobt_id,\r\n\r\n\t\t\t\tschema_id\r\n\r\n\t\t\t)\r\n\r\n\t\t\tSELECT\r\n\r\n\t\t\t\tsession_id,\r\n\r\n\t\t\t\trequest_id,\r\n\r\n\t\t\t\tdatabase_name,\r\n\r\n\t\t\t\tobject_id,\r\n\r\n\t\t\t\thobt_id,\r\n\r\n\t\t\t\tCONVERT(INT, SUBSTRING(schema_node, CHARINDEX(&#39; = &#39;, schema_node) + 3, LEN(schema_node))) AS schema_id\r\n\r\n\t\t\tFROM\r\n\r\n\t\t\t(\r\n\r\n\t\t\t\tSELECT\r\n\r\n\t\t\t\t\tsession_id,\r\n\r\n\t\t\t\t\trequest_id,\r\n\r\n\t\t\t\t\tagent_nodes.agent_node.value(&#39;(database_name\/text())[1]&#39;, &#39;sysname&#39;) AS database_name,\r\n\r\n\t\t\t\t\tagent_nodes.agent_node.value(&#39;(object_id\/text())[1]&#39;, &#39;int&#39;) AS object_id,\r\n\r\n\t\t\t\t\tagent_nodes.agent_node.value(&#39;(hobt_id\/text())[1]&#39;, &#39;bigint&#39;) AS hobt_id,\r\n\r\n\t\t\t\t\tagent_nodes.agent_node.value(&#39;(metadata_resource\/text()[.=&quot;SCHEMA&quot;]\/..\/..\/metadata_class_id\/text())[1]&#39;, &#39;varchar(100)&#39;) AS schema_node\r\n\r\n\t\t\t\tFROM #sessions AS s\r\n\r\n\t\t\t\tCROSS APPLY s.additional_info.nodes(&#39;\/\/block_info&#39;) AS agent_nodes (agent_node)\r\n\r\n\t\t\t\tWHERE\r\n\r\n\t\t\t\t\ts.recursion = 1\r\n\r\n\t\t\t) AS t\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\tt.database_name IS NOT NULL\r\n\r\n\t\t\t\tAND\r\n\r\n\t\t\t\t(\r\n\r\n\t\t\t\t\tt.object_id IS NOT NULL\r\n\r\n\t\t\t\t\tOR t.hobt_id IS NOT NULL\r\n\r\n\t\t\t\t\tOR t.schema_node IS NOT NULL\r\n\r\n\t\t\t\t);\r\n\r\n\t\t\t\r\n\r\n\t\t\tDECLARE blocks_cursor\r\n\r\n\t\t\tCURSOR LOCAL FAST_FORWARD\r\n\r\n\t\t\tFOR\r\n\r\n\t\t\t\tSELECT DISTINCT\r\n\r\n\t\t\t\t\tdatabase_name\r\n\r\n\t\t\t\tFROM #blocked_requests;\r\n\r\n\t\t\t\t\r\n\r\n\t\t\tOPEN blocks_cursor;\r\n\r\n\t\t\t\r\n\r\n\t\t\tFETCH NEXT FROM blocks_cursor\r\n\r\n\t\t\tINTO \r\n\r\n\t\t\t\t@database_name;\r\n\r\n\t\t\t\r\n\r\n\t\t\tWHILE @@FETCH_STATUS = 0\r\n\r\n\t\t\tBEGIN;\r\n\r\n\t\t\t\tBEGIN TRY;\r\n\r\n\t\t\t\t\tSET @sql_n = \r\n\r\n\t\t\t\t\t\tCONVERT(NVARCHAR(MAX), &#39;&#39;) +\r\n\r\n\t\t\t\t\t\t&#39;UPDATE b &#39; +\r\n\r\n\t\t\t\t\t\t&#39;SET &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;b.schema_name = &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;REPLACE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;s.name COLLATE Latin1_General_Bin2, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(31),N&#39;&#39;?&#39;&#39;),NCHAR(30),N&#39;&#39;?&#39;&#39;),NCHAR(29),N&#39;&#39;?&#39;&#39;),NCHAR(28),N&#39;&#39;?&#39;&#39;),NCHAR(27),N&#39;&#39;?&#39;&#39;),NCHAR(26),N&#39;&#39;?&#39;&#39;),NCHAR(25),N&#39;&#39;?&#39;&#39;),NCHAR(24),N&#39;&#39;?&#39;&#39;),NCHAR(23),N&#39;&#39;?&#39;&#39;),NCHAR(22),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(21),N&#39;&#39;?&#39;&#39;),NCHAR(20),N&#39;&#39;?&#39;&#39;),NCHAR(19),N&#39;&#39;?&#39;&#39;),NCHAR(18),N&#39;&#39;?&#39;&#39;),NCHAR(17),N&#39;&#39;?&#39;&#39;),NCHAR(16),N&#39;&#39;?&#39;&#39;),NCHAR(15),N&#39;&#39;?&#39;&#39;),NCHAR(14),N&#39;&#39;?&#39;&#39;),NCHAR(12),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(11),N&#39;&#39;?&#39;&#39;),NCHAR(8),N&#39;&#39;?&#39;&#39;),NCHAR(7),N&#39;&#39;?&#39;&#39;),NCHAR(6),N&#39;&#39;?&#39;&#39;),NCHAR(5),N&#39;&#39;?&#39;&#39;),NCHAR(4),N&#39;&#39;?&#39;&#39;),NCHAR(3),N&#39;&#39;?&#39;&#39;),NCHAR(2),N&#39;&#39;?&#39;&#39;),NCHAR(1),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;NCHAR(0), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\tN&#39;&#39;&#39;&#39;&#39; &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;b.object_name = &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;REPLACE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;o.name COLLATE Latin1_General_Bin2, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(31),N&#39;&#39;?&#39;&#39;),NCHAR(30),N&#39;&#39;?&#39;&#39;),NCHAR(29),N&#39;&#39;?&#39;&#39;),NCHAR(28),N&#39;&#39;?&#39;&#39;),NCHAR(27),N&#39;&#39;?&#39;&#39;),NCHAR(26),N&#39;&#39;?&#39;&#39;),NCHAR(25),N&#39;&#39;?&#39;&#39;),NCHAR(24),N&#39;&#39;?&#39;&#39;),NCHAR(23),N&#39;&#39;?&#39;&#39;),NCHAR(22),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(21),N&#39;&#39;?&#39;&#39;),NCHAR(20),N&#39;&#39;?&#39;&#39;),NCHAR(19),N&#39;&#39;?&#39;&#39;),NCHAR(18),N&#39;&#39;?&#39;&#39;),NCHAR(17),N&#39;&#39;?&#39;&#39;),NCHAR(16),N&#39;&#39;?&#39;&#39;),NCHAR(15),N&#39;&#39;?&#39;&#39;),NCHAR(14),N&#39;&#39;?&#39;&#39;),NCHAR(12),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;NCHAR(11),N&#39;&#39;?&#39;&#39;),NCHAR(8),N&#39;&#39;?&#39;&#39;),NCHAR(7),N&#39;&#39;?&#39;&#39;),NCHAR(6),N&#39;&#39;?&#39;&#39;),NCHAR(5),N&#39;&#39;?&#39;&#39;),NCHAR(4),N&#39;&#39;?&#39;&#39;),NCHAR(3),N&#39;&#39;?&#39;&#39;),NCHAR(2),N&#39;&#39;?&#39;&#39;),NCHAR(1),N&#39;&#39;?&#39;&#39;), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;NCHAR(0), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\tN&#39;&#39;&#39;&#39;&#39; &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;) &#39; +\r\n\r\n\t\t\t\t\t\t&#39;FROM #blocked_requests AS b &#39; +\r\n\r\n\t\t\t\t\t\t&#39;LEFT OUTER JOIN &#39; + QUOTENAME(@database_name) + &#39;.sys.partitions AS p ON &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;p.hobt_id = b.hobt_id &#39; +\r\n\r\n\t\t\t\t\t\t&#39;LEFT OUTER JOIN &#39; + QUOTENAME(@database_name) + &#39;.sys.objects AS o ON &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;o.object_id = COALESCE(p.object_id, b.object_id) &#39; +\r\n\r\n\t\t\t\t\t\t&#39;LEFT OUTER JOIN &#39; + QUOTENAME(@database_name) + &#39;.sys.schemas AS s ON &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;s.schema_id = COALESCE(o.schema_id, b.schema_id) &#39; +\r\n\r\n\t\t\t\t\t\t&#39;WHERE &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;b.database_name = @database_name; &#39;;\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tEXEC sp_executesql\r\n\r\n\t\t\t\t\t\t@sql_n,\r\n\r\n\t\t\t\t\t\tN&#39;@database_name sysname&#39;,\r\n\r\n\t\t\t\t\t\t@database_name;\r\n\r\n\t\t\t\tEND TRY\r\n\r\n\t\t\t\tBEGIN CATCH;\r\n\r\n\t\t\t\t\tUPDATE #blocked_requests\r\n\r\n\t\t\t\t\tSET\r\n\r\n\t\t\t\t\t\tquery_error = \r\n\r\n\t\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\tCONVERT\r\n\r\n\t\t\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\t\t\tNVARCHAR(MAX), \r\n\r\n\t\t\t\t\t\t\t\t\t\tERROR_MESSAGE() COLLATE Latin1_General_Bin2\r\n\r\n\t\t\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(31),N&#39;?&#39;),NCHAR(30),N&#39;?&#39;),NCHAR(29),N&#39;?&#39;),NCHAR(28),N&#39;?&#39;),NCHAR(27),N&#39;?&#39;),NCHAR(26),N&#39;?&#39;),NCHAR(25),N&#39;?&#39;),NCHAR(24),N&#39;?&#39;),NCHAR(23),N&#39;?&#39;),NCHAR(22),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(21),N&#39;?&#39;),NCHAR(20),N&#39;?&#39;),NCHAR(19),N&#39;?&#39;),NCHAR(18),N&#39;?&#39;),NCHAR(17),N&#39;?&#39;),NCHAR(16),N&#39;?&#39;),NCHAR(15),N&#39;?&#39;),NCHAR(14),N&#39;?&#39;),NCHAR(12),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(11),N&#39;?&#39;),NCHAR(8),N&#39;?&#39;),NCHAR(7),N&#39;?&#39;),NCHAR(6),N&#39;?&#39;),NCHAR(5),N&#39;?&#39;),NCHAR(4),N&#39;?&#39;),NCHAR(3),N&#39;?&#39;),NCHAR(2),N&#39;?&#39;),NCHAR(1),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\tNCHAR(0),\r\n\r\n\t\t\t\t\t\t\t\tN&#39;&#39;\r\n\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\tdatabase_name = @database_name;\r\n\r\n\t\t\t\tEND CATCH;\r\n\r\n\r\n\r\n\t\t\t\tFETCH NEXT FROM blocks_cursor\r\n\r\n\t\t\t\tINTO\r\n\r\n\t\t\t\t\t@database_name;\r\n\r\n\t\t\tEND;\r\n\r\n\t\t\t\r\n\r\n\t\t\tCLOSE blocks_cursor;\r\n\r\n\t\t\tDEALLOCATE blocks_cursor;\r\n\r\n\t\t\t\r\n\r\n\t\t\tUPDATE s\r\n\r\n\t\t\tSET\r\n\r\n\t\t\t\tadditional_info.modify\r\n\r\n\t\t\t\t(&#39;\r\n\r\n\t\t\t\t\tinsert &lt;schema_name&gt;{sql:column(&quot;b.schema_name&quot;)}&lt;\/schema_name&gt;\r\n\r\n\t\t\t\t\tas last\r\n\r\n\t\t\t\t\tinto (\/additional_info\/block_info)[1]\r\n\r\n\t\t\t\t&#39;)\r\n\r\n\t\t\tFROM #sessions AS s\r\n\r\n\t\t\tINNER JOIN #blocked_requests AS b ON\r\n\r\n\t\t\t\tb.session_id = s.session_id\r\n\r\n\t\t\t\tAND b.request_id = s.request_id\r\n\r\n\t\t\t\tAND s.recursion = 1\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\tb.schema_name IS NOT NULL;\r\n\r\n\r\n\r\n\t\t\tUPDATE s\r\n\r\n\t\t\tSET\r\n\r\n\t\t\t\tadditional_info.modify\r\n\r\n\t\t\t\t(&#39;\r\n\r\n\t\t\t\t\tinsert &lt;object_name&gt;{sql:column(&quot;b.object_name&quot;)}&lt;\/object_name&gt;\r\n\r\n\t\t\t\t\tas last\r\n\r\n\t\t\t\t\tinto (\/additional_info\/block_info)[1]\r\n\r\n\t\t\t\t&#39;)\r\n\r\n\t\t\tFROM #sessions AS s\r\n\r\n\t\t\tINNER JOIN #blocked_requests AS b ON\r\n\r\n\t\t\t\tb.session_id = s.session_id\r\n\r\n\t\t\t\tAND b.request_id = s.request_id\r\n\r\n\t\t\t\tAND s.recursion = 1\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\tb.object_name IS NOT NULL;\r\n\r\n\r\n\r\n\t\t\tUPDATE s\r\n\r\n\t\t\tSET\r\n\r\n\t\t\t\tadditional_info.modify\r\n\r\n\t\t\t\t(&#39;\r\n\r\n\t\t\t\t\tinsert &lt;query_error&gt;{sql:column(&quot;b.query_error&quot;)}&lt;\/query_error&gt;\r\n\r\n\t\t\t\t\tas last\r\n\r\n\t\t\t\t\tinto (\/additional_info\/block_info)[1]\r\n\r\n\t\t\t\t&#39;)\r\n\r\n\t\t\tFROM #sessions AS s\r\n\r\n\t\t\tINNER JOIN #blocked_requests AS b ON\r\n\r\n\t\t\t\tb.session_id = s.session_id\r\n\r\n\t\t\t\tAND b.request_id = s.request_id\r\n\r\n\t\t\t\tAND s.recursion = 1\r\n\r\n\t\t\tWHERE\r\n\r\n\t\t\t\tb.query_error IS NOT NULL;\r\n\r\n\t\tEND;\r\n\r\n\r\n\r\n\t\tIF\r\n\r\n\t\t\t@output_column_list LIKE &#39;%|[program_name|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\tAND @output_column_list LIKE &#39;%|[additional_info|]%&#39; ESCAPE &#39;|&#39;\r\n\r\n\t\t\tAND @recursion = 1\r\n\r\n\t\tBEGIN;\r\n\r\n\t\t\tDECLARE @job_id UNIQUEIDENTIFIER;\r\n\r\n\t\t\tDECLARE @step_id INT;\r\n\r\n\r\n\r\n\t\t\tDECLARE agent_cursor\r\n\r\n\t\t\tCURSOR LOCAL FAST_FORWARD\r\n\r\n\t\t\tFOR \r\n\r\n\t\t\t\tSELECT\r\n\r\n\t\t\t\t\ts.session_id,\r\n\r\n\t\t\t\t\tagent_nodes.agent_node.value(&#39;(job_id\/text())[1]&#39;, &#39;uniqueidentifier&#39;) AS job_id,\r\n\r\n\t\t\t\t\tagent_nodes.agent_node.value(&#39;(step_id\/text())[1]&#39;, &#39;int&#39;) AS step_id\r\n\r\n\t\t\t\tFROM #sessions AS s\r\n\r\n\t\t\t\tCROSS APPLY s.additional_info.nodes(&#39;\/\/agent_job_info&#39;) AS agent_nodes (agent_node)\r\n\r\n\t\t\t\tWHERE\r\n\r\n\t\t\t\t\ts.recursion = 1\r\n\r\n\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\t\t\t\r\n\r\n\t\t\tOPEN agent_cursor;\r\n\r\n\r\n\r\n\t\t\tFETCH NEXT FROM agent_cursor\r\n\r\n\t\t\tINTO \r\n\r\n\t\t\t\t@session_id,\r\n\r\n\t\t\t\t@job_id,\r\n\r\n\t\t\t\t@step_id;\r\n\r\n\r\n\r\n\t\t\tWHILE @@FETCH_STATUS = 0\r\n\r\n\t\t\tBEGIN;\r\n\r\n\t\t\t\tBEGIN TRY;\r\n\r\n\t\t\t\t\tDECLARE @job_name sysname;\r\n\r\n\t\t\t\t\tSET @job_name = NULL;\r\n\r\n\t\t\t\t\tDECLARE @step_name sysname;\r\n\r\n\t\t\t\t\tSET @step_name = NULL;\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tSELECT\r\n\r\n\t\t\t\t\t\t@job_name = \r\n\r\n\t\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\tj.name,\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(31),N&#39;?&#39;),NCHAR(30),N&#39;?&#39;),NCHAR(29),N&#39;?&#39;),NCHAR(28),N&#39;?&#39;),NCHAR(27),N&#39;?&#39;),NCHAR(26),N&#39;?&#39;),NCHAR(25),N&#39;?&#39;),NCHAR(24),N&#39;?&#39;),NCHAR(23),N&#39;?&#39;),NCHAR(22),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(21),N&#39;?&#39;),NCHAR(20),N&#39;?&#39;),NCHAR(19),N&#39;?&#39;),NCHAR(18),N&#39;?&#39;),NCHAR(17),N&#39;?&#39;),NCHAR(16),N&#39;?&#39;),NCHAR(15),N&#39;?&#39;),NCHAR(14),N&#39;?&#39;),NCHAR(12),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(11),N&#39;?&#39;),NCHAR(8),N&#39;?&#39;),NCHAR(7),N&#39;?&#39;),NCHAR(6),N&#39;?&#39;),NCHAR(5),N&#39;?&#39;),NCHAR(4),N&#39;?&#39;),NCHAR(3),N&#39;?&#39;),NCHAR(2),N&#39;?&#39;),NCHAR(1),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\tNCHAR(0),\r\n\r\n\t\t\t\t\t\t\t\tN&#39;?&#39;\r\n\r\n\t\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\t@step_name = \r\n\r\n\t\t\t\t\t\t\tREPLACE\r\n\r\n\t\t\t\t\t\t\t(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\tREPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(\r\n\r\n\t\t\t\t\t\t\t\t\ts.step_name,\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(31),N&#39;?&#39;),NCHAR(30),N&#39;?&#39;),NCHAR(29),N&#39;?&#39;),NCHAR(28),N&#39;?&#39;),NCHAR(27),N&#39;?&#39;),NCHAR(26),N&#39;?&#39;),NCHAR(25),N&#39;?&#39;),NCHAR(24),N&#39;?&#39;),NCHAR(23),N&#39;?&#39;),NCHAR(22),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(21),N&#39;?&#39;),NCHAR(20),N&#39;?&#39;),NCHAR(19),N&#39;?&#39;),NCHAR(18),N&#39;?&#39;),NCHAR(17),N&#39;?&#39;),NCHAR(16),N&#39;?&#39;),NCHAR(15),N&#39;?&#39;),NCHAR(14),N&#39;?&#39;),NCHAR(12),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\t\tNCHAR(11),N&#39;?&#39;),NCHAR(8),N&#39;?&#39;),NCHAR(7),N&#39;?&#39;),NCHAR(6),N&#39;?&#39;),NCHAR(5),N&#39;?&#39;),NCHAR(4),N&#39;?&#39;),NCHAR(3),N&#39;?&#39;),NCHAR(2),N&#39;?&#39;),NCHAR(1),N&#39;?&#39;),\r\n\r\n\t\t\t\t\t\t\t\tNCHAR(0),\r\n\r\n\t\t\t\t\t\t\t\tN&#39;?&#39;\r\n\r\n\t\t\t\t\t\t\t)\r\n\r\n\t\t\t\t\tFROM msdb.dbo.sysjobs AS j\r\n\r\n\t\t\t\t\tINNER JOIN msdb..sysjobsteps AS s ON\r\n\r\n\t\t\t\t\t\tj.job_id = s.job_id\r\n\r\n\t\t\t\t\tWHERE\r\n\r\n\t\t\t\t\t\tj.job_id = @job_id\r\n\r\n\t\t\t\t\t\tAND s.step_id = @step_id;\r\n\r\n\r\n\r\n\t\t\t\t\tIF @job_name IS NOT NULL\r\n\r\n\t\t\t\t\tBEGIN;\r\n\r\n\t\t\t\t\t\tUPDATE s\r\n\r\n\t\t\t\t\t\tSET\r\n\r\n\t\t\t\t\t\t\tadditional_info.modify\r\n\r\n\t\t\t\t\t\t\t(&#39;\r\n\r\n\t\t\t\t\t\t\t\tinsert text{sql:variable(&quot;@job_name&quot;)}\r\n\r\n\t\t\t\t\t\t\t\tinto (\/additional_info\/agent_job_info\/job_name)[1]\r\n\r\n\t\t\t\t\t\t\t&#39;)\r\n\r\n\t\t\t\t\t\tFROM #sessions AS s\r\n\r\n\t\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\t\ts.session_id = @session_id\r\n\r\n\t\t\t\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\tUPDATE s\r\n\r\n\t\t\t\t\t\tSET\r\n\r\n\t\t\t\t\t\t\tadditional_info.modify\r\n\r\n\t\t\t\t\t\t\t(&#39;\r\n\r\n\t\t\t\t\t\t\t\tinsert text{sql:variable(&quot;@step_name&quot;)}\r\n\r\n\t\t\t\t\t\t\t\tinto (\/additional_info\/agent_job_info\/step_name)[1]\r\n\r\n\t\t\t\t\t\t\t&#39;)\r\n\r\n\t\t\t\t\t\tFROM #sessions AS s\r\n\r\n\t\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\t\ts.session_id = @session_id\r\n\r\n\t\t\t\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\t\t\t\t\tEND;\r\n\r\n\t\t\t\tEND TRY\r\n\r\n\t\t\t\tBEGIN CATCH;\r\n\r\n\t\t\t\t\tDECLARE @msdb_error_message NVARCHAR(256);\r\n\r\n\t\t\t\t\tSET @msdb_error_message = ERROR_MESSAGE();\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t\tUPDATE s\r\n\r\n\t\t\t\t\tSET\r\n\r\n\t\t\t\t\t\tadditional_info.modify\r\n\r\n\t\t\t\t\t\t(&#39;\r\n\r\n\t\t\t\t\t\t\tinsert &lt;msdb_query_error&gt;{sql:variable(&quot;@msdb_error_message&quot;)}&lt;\/msdb_query_error&gt;\r\n\r\n\t\t\t\t\t\t\tas last\r\n\r\n\t\t\t\t\t\t\tinto (\/additional_info\/agent_job_info)[1]\r\n\r\n\t\t\t\t\t\t&#39;)\r\n\r\n\t\t\t\t\tFROM #sessions AS s\r\n\r\n\t\t\t\t\tWHERE \r\n\r\n\t\t\t\t\t\ts.session_id = @session_id\r\n\r\n\t\t\t\t\t\tAND s.recursion = 1\r\n\r\n\t\t\t\t\tOPTION (KEEPFIXED PLAN);\r\n\r\n\t\t\t\tEND CATCH;\r\n\r\n\r\n\r\n\t\t\t\tFETCH NEXT FROM agent_cursor\r\n\r\n\t\t\t\tINTO \r\n\r\n\t\t\t\t\t@session_id,\r\n\r\n\t\t\t\t\t@job_id,\r\n\r\n\t\t\t\t\t@step_id;\r\n\r\n\t\t\tEND;\r\n\r\n\r\n\r\n\t\t\tCLOSE agent_cursor;\r\n\r\n\t\t\tDEALLOCATE agent_cursor;\r\n\r\n\t\tEND; \r\n\r\n\t\t\r\n\r\n\t\tIF \r\n\r\n\t\t\t@delta_interval &gt; 0 \r\n\r\n\t\t\tAND @recursion &lt;&gt; 1\r\n\r\n\t\tBEGIN;\r\n\r\n\t\t\tSET @recursion = 1;\r\n\r\n\r\n\r\n\t\t\tDECLARE @delay_time CHAR(12);\r\n\r\n\t\t\tSET @delay_time = CONVERT(VARCHAR, DATEADD(second, @delta_interval, 0), 114);\r\n\r\n\t\t\tWAITFOR DELAY @delay_time;\r\n\r\n\r\n\r\n\t\t\tGOTO REDO;\r\n\r\n\t\tEND;\r\n\r\n\tEND;\r\n\r\n\r\n\r\n\tSET @sql = \r\n\r\n\t\t--Outer column list\r\n\r\n\t\tCONVERT\r\n\r\n\t\t(\r\n\r\n\t\t\tVARCHAR(MAX),\r\n\r\n\t\t\tCASE\r\n\r\n\t\t\t\tWHEN \r\n\r\n\t\t\t\t\t@destination_table &lt;&gt; &#39;&#39; \r\n\r\n\t\t\t\t\tAND @return_schema = 0 \r\n\r\n\t\t\t\t\t\tTHEN &#39;INSERT &#39; + @destination_table + &#39; &#39;\r\n\r\n\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\tEND +\r\n\r\n\t\t\t&#39;SELECT &#39; +\r\n\r\n\t\t\t\t@output_column_list + &#39; &#39; +\r\n\r\n\t\t\tCASE @return_schema\r\n\r\n\t\t\t\tWHEN 1 THEN &#39;INTO #session_schema &#39;\r\n\r\n\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\tEND\r\n\r\n\t\t--End outer column list\r\n\r\n\t\t) + \r\n\r\n\t\t--Inner column list\r\n\r\n\t\tCONVERT\r\n\r\n\t\t(\r\n\r\n\t\t\tVARCHAR(MAX),\r\n\r\n\t\t\t&#39;FROM &#39; +\r\n\r\n\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t&#39;SELECT &#39; +\r\n\r\n\t\t\t\t\t&#39;session_id, &#39; +\r\n\r\n\t\t\t\t\t--[dd hh:mm:ss.mss]\r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN @format_output IN (1, 2) THEN\r\n\r\n\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;WHEN elapsed_time &lt; 0 THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;RIGHT &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;REPLICATE(&#39;&#39;0&#39;&#39;, max_elapsed_length) + CONVERT(VARCHAR, (-1 * elapsed_time) \/ 86400), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;max_elapsed_length &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;RIGHT &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;CONVERT(VARCHAR, DATEADD(second, (-1 * elapsed_time), 0), 120), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;9 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;&#39;&#39;.000&#39;&#39; &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;ELSE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;RIGHT &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;REPLICATE(&#39;&#39;0&#39;&#39;, max_elapsed_length) + CONVERT(VARCHAR, elapsed_time \/ 86400000), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;max_elapsed_length &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;RIGHT &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;CONVERT(VARCHAR, DATEADD(second, elapsed_time \/ 1000, 0), 120), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;9 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;&#39;&#39;.&#39;&#39; + &#39; + \r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;RIGHT(&#39;&#39;000&#39;&#39; + CONVERT(VARCHAR, elapsed_time % 1000), 3) &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;END AS [dd hh:mm:ss.mss], &#39;\r\n\r\n\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t&#39;&#39;\r\n\r\n\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t--[dd hh:mm:ss.mss (avg)] \/ avg_elapsed_time\r\n\r\n\t\t\t\t\tCASE \r\n\r\n\t\t\t\t\t\tWHEN  @format_output IN (1, 2) THEN \r\n\r\n\t\t\t\t\t\t\t&#39;RIGHT &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;&#39;&#39;00&#39;&#39; + CONVERT(VARCHAR, avg_elapsed_time \/ 86400000), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;2 &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;RIGHT &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;CONVERT(VARCHAR, DATEADD(second, avg_elapsed_time \/ 1000, 0), 120), &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;9 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;&#39;&#39;.&#39;&#39; + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;RIGHT(&#39;&#39;000&#39;&#39; + CONVERT(VARCHAR, avg_elapsed_time % 1000), 3) AS [dd hh:mm:ss.mss (avg)], &#39;\r\n\r\n\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t&#39;avg_elapsed_time, &#39;\r\n\r\n\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t--physical_io\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, physical_io))) OVER() - LEN(CONVERT(VARCHAR, physical_io))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_io), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_io), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;physical_io, &#39; +\r\n\r\n\t\t\t\t\t--reads\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, reads))) OVER() - LEN(CONVERT(VARCHAR, reads))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, reads), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, reads), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;reads, &#39; +\r\n\r\n\t\t\t\t\t--physical_reads\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, physical_reads))) OVER() - LEN(CONVERT(VARCHAR, physical_reads))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_reads), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_reads), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;physical_reads, &#39; +\r\n\r\n\t\t\t\t\t--writes\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, writes))) OVER() - LEN(CONVERT(VARCHAR, writes))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, writes), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, writes), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;writes, &#39; +\r\n\r\n\t\t\t\t\t--tempdb_allocations\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, tempdb_allocations))) OVER() - LEN(CONVERT(VARCHAR, tempdb_allocations))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_allocations), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_allocations), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;tempdb_allocations, &#39; +\r\n\r\n\t\t\t\t\t--tempdb_current\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, tempdb_current))) OVER() - LEN(CONVERT(VARCHAR, tempdb_current))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_current), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_current), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;tempdb_current, &#39; +\r\n\r\n\t\t\t\t\t--CPU\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, CPU))) OVER() - LEN(CONVERT(VARCHAR, CPU))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, CPU), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, CPU), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;CPU, &#39; +\r\n\r\n\t\t\t\t\t--context_switches\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, context_switches))) OVER() - LEN(CONVERT(VARCHAR, context_switches))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, context_switches), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, context_switches), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;context_switches, &#39; +\r\n\r\n\t\t\t\t\t--used_memory\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, used_memory))) OVER() - LEN(CONVERT(VARCHAR, used_memory))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, used_memory), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, used_memory), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;used_memory, &#39; +\r\n\r\n\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\tWHEN @output_column_list LIKE &#39;%|_delta|]%&#39; ESCAPE &#39;|&#39; THEN\r\n\r\n\t\t\t\t\t\t\t--physical_io_delta\t\t\t\r\n\r\n\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;WHEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;first_request_start_time = last_request_start_time &#39; + \r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND num_events = 2 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND physical_io_delta &gt;= 0 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, physical_io_delta))) OVER() - LEN(CONVERT(VARCHAR, physical_io_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_io_delta), 1), 19)) &#39; \r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_io_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE &#39;physical_io_delta &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\t\t&#39;ELSE NULL &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;END AS physical_io_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t--reads_delta\r\n\r\n\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;WHEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;first_request_start_time = last_request_start_time &#39; + \r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND num_events = 2 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND reads_delta &gt;= 0 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, reads_delta))) OVER() - LEN(CONVERT(VARCHAR, reads_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, reads_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, reads_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE &#39;reads_delta &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t\t\t&#39;ELSE NULL &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;END AS reads_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t--physical_reads_delta\r\n\r\n\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;WHEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;first_request_start_time = last_request_start_time &#39; + \r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND num_events = 2 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND physical_reads_delta &gt;= 0 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, physical_reads_delta))) OVER() - LEN(CONVERT(VARCHAR, physical_reads_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_reads_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, physical_reads_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE &#39;physical_reads_delta &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND + \r\n\r\n\t\t\t\t\t\t\t\t&#39;ELSE NULL &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;END AS physical_reads_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t--writes_delta\r\n\r\n\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;WHEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;first_request_start_time = last_request_start_time &#39; + \r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND num_events = 2 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND writes_delta &gt;= 0 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, writes_delta))) OVER() - LEN(CONVERT(VARCHAR, writes_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, writes_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, writes_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE &#39;writes_delta &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND + \r\n\r\n\t\t\t\t\t\t\t\t&#39;ELSE NULL &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;END AS writes_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t--tempdb_allocations_delta\r\n\r\n\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;WHEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;first_request_start_time = last_request_start_time &#39; + \r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND num_events = 2 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND tempdb_allocations_delta &gt;= 0 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, tempdb_allocations_delta))) OVER() - LEN(CONVERT(VARCHAR, tempdb_allocations_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_allocations_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_allocations_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE &#39;tempdb_allocations_delta &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND + \r\n\r\n\t\t\t\t\t\t\t\t&#39;ELSE NULL &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;END AS tempdb_allocations_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t--tempdb_current_delta\r\n\r\n\t\t\t\t\t\t\t--this is the only one that can (legitimately) go negative \r\n\r\n\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;WHEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;first_request_start_time = last_request_start_time &#39; + \r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND num_events = 2 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, tempdb_current_delta))) OVER() - LEN(CONVERT(VARCHAR, tempdb_current_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_current_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tempdb_current_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE &#39;tempdb_current_delta &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND + \r\n\r\n\t\t\t\t\t\t\t\t&#39;ELSE NULL &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;END AS tempdb_current_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t--CPU_delta\r\n\r\n\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;WHEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;first_request_start_time = last_request_start_time &#39; + \r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND num_events = 2 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;WHEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;thread_CPU_delta &gt; CPU_delta &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;AND thread_CPU_delta &gt; 0 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, thread_CPU_delta + CPU_delta))) OVER() - LEN(CONVERT(VARCHAR, thread_CPU_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, thread_CPU_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, thread_CPU_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE &#39;thread_CPU_delta &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEND + \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;WHEN CPU_delta &gt;= 0 THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, thread_CPU_delta + CPU_delta))) OVER() - LEN(CONVERT(VARCHAR, CPU_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, CPU_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, CPU_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tELSE &#39;CPU_delta &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tEND + \r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;ELSE NULL &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;END &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;ELSE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;NULL &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;END AS CPU_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t--context_switches_delta\r\n\r\n\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;WHEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;first_request_start_time = last_request_start_time &#39; + \r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND num_events = 2 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND context_switches_delta &gt;= 0 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, context_switches_delta))) OVER() - LEN(CONVERT(VARCHAR, context_switches_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, context_switches_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, context_switches_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE &#39;context_switches_delta &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND + \r\n\r\n\t\t\t\t\t\t\t\t&#39;ELSE NULL &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;END AS context_switches_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t--used_memory_delta\r\n\r\n\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;WHEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;first_request_start_time = last_request_start_time &#39; + \r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND num_events = 2 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;AND used_memory_delta &gt;= 0 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, used_memory_delta))) OVER() - LEN(CONVERT(VARCHAR, used_memory_delta))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, used_memory_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, used_memory_delta), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tELSE &#39;used_memory_delta &#39;\r\n\r\n\t\t\t\t\t\t\t\t\t\tEND + \r\n\r\n\t\t\t\t\t\t\t\t&#39;ELSE NULL &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;END AS used_memory_delta, &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t--tasks\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, tasks))) OVER() - LEN(CONVERT(VARCHAR, tasks))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tasks), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, tasks), 1), 19)) &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;tasks, &#39; +\r\n\r\n\t\t\t\t\t&#39;status, &#39; +\r\n\r\n\t\t\t\t\t&#39;wait_info, &#39; +\r\n\r\n\t\t\t\t\t&#39;locks, &#39; +\r\n\r\n\t\t\t\t\t&#39;tran_start_time, &#39; +\r\n\r\n\t\t\t\t\t&#39;LEFT(tran_log_writes, LEN(tran_log_writes) - 1) AS tran_log_writes, &#39; +\r\n\r\n\t\t\t\t\t--open_tran_count\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, open_tran_count))) OVER() - LEN(CONVERT(VARCHAR, open_tran_count))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, open_tran_count), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, open_tran_count), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;open_tran_count, &#39; +\r\n\r\n\t\t\t\t\t--sql_command\r\n\r\n\t\t\t\t\tCASE @format_output \r\n\r\n\t\t\t\t\t\tWHEN 0 THEN &#39;REPLACE(REPLACE(CONVERT(NVARCHAR(MAX), sql_command), &#39;&#39;&lt;?query --&#39;&#39;+CHAR(13)+CHAR(10), &#39;&#39;&#39;&#39;), CHAR(13)+CHAR(10)+&#39;&#39;--?&gt;&#39;&#39;, &#39;&#39;&#39;&#39;) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;sql_command, &#39; +\r\n\r\n\t\t\t\t\t--sql_text\r\n\r\n\t\t\t\t\tCASE @format_output \r\n\r\n\t\t\t\t\t\tWHEN 0 THEN &#39;REPLACE(REPLACE(CONVERT(NVARCHAR(MAX), sql_text), &#39;&#39;&lt;?query --&#39;&#39;+CHAR(13)+CHAR(10), &#39;&#39;&#39;&#39;), CHAR(13)+CHAR(10)+&#39;&#39;--?&gt;&#39;&#39;, &#39;&#39;&#39;&#39;) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;sql_text, &#39; +\r\n\r\n\t\t\t\t\t&#39;query_plan, &#39; +\r\n\r\n\t\t\t\t\t&#39;blocking_session_id, &#39; +\r\n\r\n\t\t\t\t\t--blocked_session_count\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, blocked_session_count))) OVER() - LEN(CONVERT(VARCHAR, blocked_session_count))) + LEFT(CONVERT(CHAR(22), CONVERT(MONEY, blocked_session_count), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, LEFT(CONVERT(CHAR(22), CONVERT(MONEY, blocked_session_count), 1), 19)) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;blocked_session_count, &#39; +\r\n\r\n\t\t\t\t\t--percent_complete\r\n\r\n\t\t\t\t\tCASE @format_output\r\n\r\n\t\t\t\t\t\tWHEN 1 THEN &#39;CONVERT(VARCHAR, SPACE(MAX(LEN(CONVERT(VARCHAR, CONVERT(MONEY, percent_complete), 2))) OVER() - LEN(CONVERT(VARCHAR, CONVERT(MONEY, percent_complete), 2))) + CONVERT(CHAR(22), CONVERT(MONEY, percent_complete), 2)) AS &#39;\r\n\r\n\t\t\t\t\t\tWHEN 2 THEN &#39;CONVERT(VARCHAR, CONVERT(CHAR(22), CONVERT(MONEY, blocked_session_count), 1)) AS &#39;\r\n\r\n\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\tEND + &#39;percent_complete, &#39; +\r\n\r\n\t\t\t\t\t&#39;host_name, &#39; +\r\n\r\n\t\t\t\t\t&#39;login_name, &#39; +\r\n\r\n\t\t\t\t\t&#39;database_name, &#39; +\r\n\r\n\t\t\t\t\t&#39;program_name, &#39; +\r\n\r\n\t\t\t\t\t&#39;additional_info, &#39; +\r\n\r\n\t\t\t\t\t&#39;start_time, &#39; +\r\n\r\n\t\t\t\t\t&#39;login_time, &#39; +\r\n\r\n\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t&#39;WHEN status = N&#39;&#39;sleeping&#39;&#39; THEN NULL &#39; +\r\n\r\n\t\t\t\t\t\t&#39;ELSE request_id &#39; +\r\n\r\n\t\t\t\t\t&#39;END AS request_id, &#39; +\r\n\r\n\t\t\t\t\t&#39;GETDATE() AS collection_time &#39;\r\n\r\n\t\t--End inner column list\r\n\r\n\t\t) +\r\n\r\n\t\t--Derived table and INSERT specification\r\n\r\n\t\tCONVERT\r\n\r\n\t\t(\r\n\r\n\t\t\tVARCHAR(MAX),\r\n\r\n\t\t\t\t&#39;FROM &#39; +\r\n\r\n\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t&#39;SELECT TOP(2147483647) &#39; +\r\n\r\n\t\t\t\t\t\t&#39;*, &#39; +\r\n\r\n\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;MAX &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;LEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;CONVERT &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;VARCHAR, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;WHEN elapsed_time &lt; 0 THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;(-1 * elapsed_time) \/ 86400 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;ELSE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;elapsed_time \/ 86400000 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;END &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;) &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;) &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;) OVER () &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;WHEN 1 THEN 2 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;ELSE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;MAX &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;LEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;CONVERT &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;VARCHAR, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;WHEN elapsed_time &lt; 0 THEN &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;(-1 * elapsed_time) \/ 86400 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;ELSE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#39;elapsed_time \/ 86400000 &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t&#39;END &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;) &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;) &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;) OVER () &#39; +\r\n\r\n\t\t\t\t\t\t&#39;END AS max_elapsed_length, &#39; +\r\n\r\n\t\t\t\t\t\tCASE\r\n\r\n\t\t\t\t\t\t\tWHEN @output_column_list LIKE &#39;%|_delta|]%&#39; ESCAPE &#39;|&#39; THEN\r\n\r\n\t\t\t\t\t\t\t\t&#39;MAX(physical_io * recursion) OVER (PARTITION BY session_id, request_id) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;MIN(physical_io * recursion) OVER (PARTITION BY session_id, request_id) AS physical_io_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;MAX(reads * recursion) OVER (PARTITION BY session_id, request_id) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;MIN(reads * recursion) OVER (PARTITION BY session_id, request_id) AS reads_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;MAX(physical_reads * recursion) OVER (PARTITION BY session_id, request_id) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;MIN(physical_reads * recursion) OVER (PARTITION BY session_id, request_id) AS physical_reads_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;MAX(writes * recursion) OVER (PARTITION BY session_id, request_id) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;MIN(writes * recursion) OVER (PARTITION BY session_id, request_id) AS writes_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;MAX(tempdb_allocations * recursion) OVER (PARTITION BY session_id, request_id) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;MIN(tempdb_allocations * recursion) OVER (PARTITION BY session_id, request_id) AS tempdb_allocations_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;MAX(tempdb_current * recursion) OVER (PARTITION BY session_id, request_id) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;MIN(tempdb_current * recursion) OVER (PARTITION BY session_id, request_id) AS tempdb_current_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;MAX(CPU * recursion) OVER (PARTITION BY session_id, request_id) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;MIN(CPU * recursion) OVER (PARTITION BY session_id, request_id) AS CPU_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;MAX(thread_CPU_snapshot * recursion) OVER (PARTITION BY session_id, request_id) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;MIN(thread_CPU_snapshot * recursion) OVER (PARTITION BY session_id, request_id) AS thread_CPU_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;MAX(context_switches * recursion) OVER (PARTITION BY session_id, request_id) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;MIN(context_switches * recursion) OVER (PARTITION BY session_id, request_id) AS context_switches_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;MAX(used_memory * recursion) OVER (PARTITION BY session_id, request_id) + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;MIN(used_memory * recursion) OVER (PARTITION BY session_id, request_id) AS used_memory_delta, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;MIN(last_request_start_time) OVER (PARTITION BY session_id, request_id) AS first_request_start_time, &#39;\r\n\r\n\t\t\t\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\t\t\t\tEND +\r\n\r\n\t\t\t\t\t\t&#39;COUNT(*) OVER (PARTITION BY session_id, request_id) AS num_events &#39; +\r\n\r\n\t\t\t\t\t&#39;FROM #sessions AS s1 &#39; +\r\n\r\n\t\t\t\t\tCASE \r\n\r\n\t\t\t\t\t\tWHEN @sort_order = &#39;&#39; THEN &#39;&#39;\r\n\r\n\t\t\t\t\t\tELSE\r\n\r\n\t\t\t\t\t\t\t&#39;ORDER BY &#39; +\r\n\r\n\t\t\t\t\t\t\t\t@sort_order\r\n\r\n\t\t\t\t\tEND +\r\n\r\n\t\t\t\t&#39;) AS s &#39; +\r\n\r\n\t\t\t\t&#39;WHERE &#39; +\r\n\r\n\t\t\t\t\t&#39;s.recursion = 1 &#39; +\r\n\r\n\t\t\t&#39;) x &#39; +\r\n\r\n\t\t\t&#39;OPTION (KEEPFIXED PLAN); &#39; +\r\n\r\n\t\t\t&#39;&#39; +\r\n\r\n\t\t\tCASE @return_schema\r\n\r\n\t\t\t\tWHEN 1 THEN\r\n\r\n\t\t\t\t\t&#39;SET @schema = &#39; +\r\n\r\n\t\t\t\t\t\t&#39;&#39;&#39;CREATE TABLE &lt;table_name&gt; ( &#39;&#39; + &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;STUFF &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;( &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;SELECT &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;&#39;&#39;,&#39;&#39; + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;QUOTENAME(COLUMN_NAME) + &#39;&#39; &#39;&#39; + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;DATA_TYPE + &#39; + \r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;CASE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;WHEN DATA_TYPE LIKE &#39;&#39;%char&#39;&#39; THEN &#39;&#39;(&#39;&#39; + COALESCE(NULLIF(CONVERT(VARCHAR, CHARACTER_MAXIMUM_LENGTH), &#39;&#39;-1&#39;&#39;), &#39;&#39;max&#39;&#39;) + &#39;&#39;) &#39;&#39; &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;ELSE &#39;&#39; &#39;&#39; &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;END + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;CASE IS_NULLABLE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;WHEN &#39;&#39;NO&#39;&#39; THEN &#39;&#39;NOT &#39;&#39; &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;ELSE &#39;&#39;&#39;&#39; &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;END + &#39;&#39;NULL&#39;&#39; AS [text()] &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;FROM tempdb.INFORMATION_SCHEMA.COLUMNS &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;WHERE &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;TABLE_NAME = (SELECT name FROM tempdb.sys.objects WHERE object_id = OBJECT_ID(&#39;&#39;tempdb..#session_schema&#39;&#39;)) &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;ORDER BY &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t&#39;ORDINAL_POSITION &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t&#39;FOR XML &#39; +\r\n\r\n\t\t\t\t\t\t\t\t\t\t&#39;PATH(&#39;&#39;&#39;&#39;) &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;), + &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;1, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;1, &#39; +\r\n\r\n\t\t\t\t\t\t\t\t&#39;&#39;&#39;&#39;&#39; &#39; +\r\n\r\n\t\t\t\t\t\t\t&#39;) + &#39; +\r\n\r\n\t\t\t\t\t\t&#39;&#39;&#39;)&#39;&#39;; &#39; \r\n\r\n\t\t\t\tELSE &#39;&#39;\r\n\r\n\t\t\tEND\r\n\r\n\t\t--End derived table and INSERT specification\r\n\r\n\t\t);\r\n\r\n\r\n\r\n\tSET @sql_n = CONVERT(NVARCHAR(MAX), @sql);\r\n\r\n\r\n\r\n\tEXEC sp_executesql\r\n\r\n\t\t@sql_n,\r\n\r\n\t\tN&#39;@schema VARCHAR(MAX) OUTPUT&#39;,\r\n\r\n\t\t@schema OUTPUT;\r\n\r\nEND;\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\/****************************************************** [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[],"class_list":["post-2630","post","type-post","status-publish","format-standard","hentry","category-sql-server"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/posts\/2630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/comments?post=2630"}],"version-history":[{"count":0,"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/posts\/2630\/revisions"}],"wp:attachment":[{"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/media?parent=2630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/categories?post=2630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/enjoyasp.net\/index.php\/wp-json\/wp\/v2\/tags?post=2630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}