Don*_*ald 3 sql-server sql-server-2019
我的 SQL Server 2019 SE 在 Windows Server 2019 SE 上运行,硬件规格如下:
40 核 1TB 内存
我认为上述规范是矫枉过正!但如果我从 Windows 任务管理器中看到:
SQL Server 内存使用量为:384GB,处理器使用量为 8 核。
如何将真实的 SQL Server 内存和每分钟 CPU 利用率记录到一个表中,以便我可以分析所需的真实规格是什么?
在 SQL Server 代理中创建一个作业,每分钟按计划运行在
作业中,您可以使用此 T-SQL 来收集当前的 CPU 和内存消耗
宣布 @CPU_Usage_Percentage 整数, @Total_SQL_Server_Memory_MB int - 中央处理器 与 y AS ( 选择 CONVERT(VARCHAR(5), 100 - ca.c.value('.', 'INT')) AS system_idle, CONVERT(VARCHAR(30), rb.event_date) AS event_date, CONVERT(VARCHAR(8000), rb.record) AS 记录 从 ( 选择 CONVERT(XML, dorb.record) AS 记录, DATEADD(ms, (ts.ms_ticks - dorb.timestamp), GETDATE()) AS event_date FROM sys.dm_os_ring_buffers AS dorb 交叉连接( 选择 dosi.ms_ticks FROM sys.dm_os_sys_info AS dosi ) AS ts WHERE dorb.ring_buffer_type = N'RING_BUFFER_SCHEDULER_MONITOR' 并记录如 '%%' ) AS rb 交叉应用 rb.record.nodes('/Record/SchedulerMonitorEvent/SystemHealth/SystemIdle') AS ca(c) ) SELECT @CPU_Usage_Percentage = (选择 TOP 1 y.system_idle 从 y ORDER BY y.event_date DESC) - 记忆 选择@Total_SQL_Server_Memory_MB =(选择 cntr_value / 1024 来自 sys.dm_os_performance_counters pc where [object_name] = 'SQLServer:Memory Manager' 和 counter_name = '总服务器内存(KB)' ) 选择 @CPU_Usage_Percentage [CPU_Usage_Percentage], @Total_SQL_Server_Memory_MB [Total_SQL_Server_Memory_MB]
将@CPU_Usage_Percentage
和 的值@Total_SQL_Server_Memory_MB
插入日志表,你很好
归档时间: |
|
查看次数: |
110 次 |
最近记录: |