--===================================================================

--背景:

在一台SQL SERVER 2012 SP1(11.0.3000)服务器上,由于批处理请求较高,CPU使用率超过40%,于是开始各种调研。。

服务器情况:

服务器物理内存为128GB, 分配给SQL SERVER 115GB,Windows 可用物理内存为6GB左右

压力情况:

批处理请求超过30000+,有大量UPDATE和INSERT操作,CPU使用率超过40%,IO队列在20以上。

--===================================================================

首先查看当前运行的SQL,查看是否有可优化的SQL

--==================================================
--查看正在执行的SQL
SELECT 
s.[session_id],
r.[start_time],
DATEDIFF(SECOND,r.start_time,GETDATE()) AS elapsed_seconds,
r.[status] AS RequestStatus,
DB_NAME(r.database_id) AS DatabaseName,
r.[wait_type],
r.[wait_resource],
r.[wait_time],
r.[reads],
r.[writes],
r.[logical_reads],
s.[status] AS SessionStatus,
s.[host_name],
s.[original_login_name],
s.[nt_user_name],
s.[program_name],
s.[client_interface_name],
c.[client_net_address],
SUBSTRING (qt.text,
             r.statement_start_offset/2,
(CASE WHEN r.statement_end_offset = -1
       THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
ELSE r.statement_end_offset END -
r.statement_start_offset)/2) AS ExecutingSQL,
qp.query_plan
FROM sys.dm_exec_requests r
INNER JOIN sys.dm_exec_sessions s
ON r.session_id=s.session_id
LEFT JOIN sys.dm_exec_connections c
ON c.session_id=s.session_id
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) as qt
CROSS APPLY sys.dm_exec_query_plan(r.plan_handle) as qp
View Code

相关文章:

  • 2021-04-19
  • 2021-10-19
  • 2021-10-22
  • 2021-06-21
  • 2021-08-31
  • 2022-01-18
  • 2021-12-04
  • 2022-02-28
猜你喜欢
  • 2021-08-19
  • 2021-12-14
  • 2021-12-29
  • 2021-06-04
  • 2021-08-06
  • 2021-05-12
相关资源
相似解决方案