我正在测量备份对 CPU 的性能影响。我想捕获所有备份操作和 CPU 使用情况。我正在运行每周完整备份、每日差异和 15 分钟日志备份。扩展事件中是否有任何选项可以用来捕获 CPU 使用率?
CREATE EVENT SESSION [Backup_Events_Trace] ON SERVER ADD EVENT sqlserver.backup_restore_progress_trace (ACTION(sqlserver.client_hostname, sqlserver.database_name))
,ADD EVENT sqlserver.databases_backup_restore_throughput (ACTION(sqlserver.client_hostname, sqlserver.database_name)) ADD TARGET package0.event_file (SET filename = N'L:\XE\Backup_Events_Trace.xel')
WITH (STARTUP_STATE = OFF)
GO
您可以通过添加此事件来获取 CPU 利用率:
sqlos.scheduler_monitor_system_health_ring_buffer_recorded
将此添加到您的扩展事件会话将返回 CPU 利用率统计信息(以及其他)。
当您查询数据时,有两个字段 -
process_utilization
分别system_idle
代表 SQL 进程 CPU 利用率和空闲 CPU %。process_utilization
通过从服务器中减去system_idle
非 SQL 使用的 CPU。此外,据我所知,您也可以从内置的系统健康扩展事件中获得 CPU 使用率。
它跟踪 CPU 指标以及运行的查询。如果有兴趣,您可能需要根据需要进行调整。否则,如果可能,您始终可以使用 DMV 进行其他事件或从缓存中提取数据