1
0
mirror of https://github.com/Microsoft/sql-server-samples.git synced 2025-12-08 14:58:54 +00:00
Files
sql-server-samples/samples/demos/xEvents/PerfStats_XE_Demo.sql

43 lines
1.9 KiB
Transact-SQL

-- Make sure Optimize for Adhoc Workloads is not active if demo'ing - that is why mt demo failed.
DROP EVENT SESSION [QueryProfileXE] ON SERVER
GO
CREATE EVENT SESSION [QueryProfileXE] ON SERVER
ADD EVENT sqlserver.query_thread_profile(
ACTION(sqlos.scheduler_id,sqlserver.database_id,sqlserver.is_system,sqlserver.plan_handle,sqlserver.query_hash_signed,sqlserver.query_plan_hash_signed,sqlserver.server_instance_name,sqlserver.session_id,sqlserver.session_nt_username,sqlserver.sql_text))
ADD TARGET package0.event_file(SET filename=N'C:\Demos\QueryProfileXE.xel',max_file_size=(50),max_rollover_files=(2))
--ADD TARGET package0.ring_buffer(SET max_memory=(25600))
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO
-- Get Actual Exec plan to compare to XE
--USE AdventureWorks2014
USE AdventureWorks2016CTP3
GO
DBCC FREEPROCCACHE
GO
ALTER EVENT SESSION [QueryProfileXE] ON SERVER STATE = START
GO
SELECT *
FROM Sales.SalesOrderDetail sod
INNER JOIN Production.Product p ON sod.ProductID = p.ProductID
ORDER BY Style DESC
OPTION (MAXDOP 1)
GO
ALTER EVENT SESSION [QueryProfileXE] ON SERVER STATE = STOP
GO
-- After running query, get plan handle and run below to see new columns in DMV
SELECT * FROM sys.dm_exec_query_stats
WHERE plan_handle = 0x0600050006F60819800281514E02000001000000000000000000000000000000000000000000000000000000
GO
-- And to get the plan from cache
SELECT * FROM sys.dm_exec_query_plan(0x0600050006F60819800281514E02000001000000000000000000000000000000000000000000000000000000)
GO
-- After running query, get new signed query or query plan hash and run below to see new columns in DMV
SELECT * FROM sys.dm_exec_query_stats
WHERE CAST(query_hash AS BIGINT) = -5396503127623128976;
--WHERE CAST(query_plan_hash AS BIGINT) = 3230654061787450360