initial population of repo
This commit is contained in:
6
chk-2a256de1-a831-4337-a883-7ee540cb4563.json
Normal file
6
chk-2a256de1-a831-4337-a883-7ee540cb4563.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"id": "2a256de1-a831-4337-a883-7ee540cb4563",
|
||||
"prefix": "chk",
|
||||
"description": "Creates an extended event session, runs the code you want to test, extracts the output and then stops the session",
|
||||
"body": "/**\r\nCopyright (c) Red Gate Software Ltd 2018\r\nAll rights Reserved. Use of this code is subject to the terms of a license agreement with Red Gate Software Limited.\r\n\r\nFor more info, see https://www.red-gate.com/hub/product-learning/sql-prompt/testing-performance-individual-sql-statements-within-batch-using-sql-prompt\r\n**/\r\n\r\nIF EXISTS --if the session already exists, then delete it. We are assuming you've changed something\r\n (\r\n SELECT * FROM sys.server_event_sessions\r\n WHERE server_event_sessions.name = 'CheckingSQLStatements'\r\n )\r\n DROP EVENT SESSION CheckingSQLStatements ON SERVER;\r\nGO\r\nCREATE EVENT SESSION CheckingSQLStatements --call it what you wish, of course\r\nON SERVER\r\n ADD EVENT sqlserver.sql_statement_completed --we just have one event\r\n (ACTION (sqlserver.database_name, sqlserver.sql_text, sqlserver.plan_handle)-- and these global vars\r\n WHERE (sqlserver.like_i_sql_unicode_string(sqlserver.sql_text, N'--Test these queries%'))\r\n\t --we just want the batch and nothing else so we put an identifying string at the start\r\n )\r\n ADD TARGET package0.ring_buffer \r\n --we don't need a more permanent record or a bucket count\r\nWITH (STARTUP_STATE = OFF);\r\nGO\r\nALTER EVENT SESSION CheckingSQLStatements ON SERVER STATE = START;\r\n--V-----The Batch being tested starts here ------V\r\nGO --don't change this next line without changing the WHERE clause above\r\n--Test these queries\r\n-------------------------------------------------------------------\r\n\r\n$SELECTEDTEXT$\r\n\r\n------------------------------------------------------------------\r\ngo\r\nDECLARE @Target_Data XML =\r\n (\r\n SELECT TOP 1 Cast(xet.target_data AS XML) AS targetdata\r\n FROM sys.dm_xe_session_targets AS xet\r\n INNER JOIN sys.dm_xe_sessions AS xes\r\n ON xes.address = xet.event_session_address\r\n WHERE xes.name = 'CheckingSQLStatements'\r\n AND xet.target_name = 'ring_buffer'\r\n );\r\nSELECT \r\nCONVERT(datetime2,\r\n SwitchOffset(CONVERT(datetimeoffset,the.event_data.value('(@timestamp)[1]', 'datetime2')),\r\n\t\tDateName(TzOffset, SYSDATETIMEOFFSET()))) AS datetime_local,\r\nCONVERT(DECIMAL(6,3),round(the.event_data.value('(data[@name=\"duration\"]/value)[1]', 'bigint')/1000000.0,3,1)) AS duration,\r\nthe.event_data.value('(data[@name=\"statement\"]/value)[1]', 'nvarchar(max)') AS [statement],\r\n--the.event_data.value('(action[@name=\"sql_text\"]/value)[1]', 'nvarchar(max)') AS sql_text,\r\n--the.event_data.value('(action[@name=\"database_name\"]/value)[1]', 'nvarchar(80)') AS [database_name],\r\nqp.query_plan,\r\nthe.event_data.value('(data[@name=\"cpu_time\"]/value)[1]', 'bigint') AS [cpu_time(microsSecs)],\r\nthe.event_data.value('(data[@name=\"physical_reads\"]/value)[1]', 'bigint') AS physical_reads,\r\nthe.event_data.value('(data[@name=\"logical_reads\"]/value)[1]', 'bigint') AS logical_reads,\r\nthe.event_data.value('(data[@name=\"writes\"]/value)[1]', 'bigint') AS writes,\r\nthe.event_data.value('(data[@name=\"row_count\"]/value)[1]', 'bigint') AS row_count\r\n--the.event_data.value('(data[@name=\"last_row_count\"]/value)[1]', 'int') AS last_row_count,\r\n--the.event_data.value('(data[@name=\"line_number\"]/value)[1]', 'int') AS line_number,\r\n--the.event_data.value('(data[@name=\"offset\"]/value)[1]', 'int') AS offset,\r\n--the.event_data.value('(data[@name=\"offset_end\"]/value)[1]', 'int') AS offset_end,\r\n\r\nFROM @Target_Data.nodes('//RingBufferTarget/event') AS the (event_data)\r\n CROSS APPLY sys.dm_exec_query_plan(\r\n Convert(varbinary(64),--convert to valid plan handle\r\n '0x' + the.event_data.value('(action[@name=\"plan_handle\"]/value)[1]', 'nvarchar(max)')\r\n\t\t ,1)) as qp\r\n\r\nALTER EVENT SESSION CheckingSQLStatements ON SERVER STATE = STOP;"
|
||||
}
|
||||
Reference in New Issue
Block a user