SQL Server超时诊断
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,连接超时对于连接超时,首先可以查看Connectivity Ring Buffer中的LoginTimers类型错误来分析,如果想获得更详尽的信息,再通过抓包工具network monitor。具体方
千家信息网最后更新 2025年02月03日SQL Server超时诊断
连接超时
对于连接超时,首先可以查看Connectivity Ring Buffer中的LoginTimers类型错误来分析,如果想获得更详尽的信息,再通过抓包工具network monitor。
具体方法和语句可参考以下文章:
https://blogs.msdn.microsoft.com/apgcdsd/2011/11/20/ring-buffersql-server-2008/
http://ultrasql.blog.51cto.com/9591438/1583446
查询超时
对于查询超时,针对SQL Server 2012以下的版本,使用Profiler的TSQL_Duration模板的基础上,添加"Errors and Warnings"下的"Attention",根据捕获到的Attention结合上下文去查找相应的语句;对于SQL Server 2012及以上版本,直接使用扩展事件监控sqlserver.attention事件,直接输出sql_text。
以下为XE脚本:
use tempdb go if exists (select * from sys.objects where name = 'sqlws_xev_attention') drop view sqlws_xev_attention go create view sqlws_xev_attention as with xevents (event_data) as ( select event.query('.') as event_data from ((select cast (xest.target_data as xml) as target_data from sys.dm_xe_sessions as xes inner join sys.dm_xe_session_targets as xest on (xes.address = xest.event_session_address) where xes.name = 'sqlws_xevents_attention' and xest.target_name = 'ring_buffer') as td cross apply target_data.nodes ('//event[@name="attention"]') as x (event)) ) select event_data.value ('(event/@name)[1]', 'varchar(max)') as event_name, event_data.value ('(event/@timestamp)[1]', 'datetime') as event_timestamp, event_data.value ('(event/data[@name="duration"]/value)[1]', 'bigint') as [duration], event_data.value ('(event/data[@name="request_id"]/value)[1]', 'int') as [request_id], event_data.value ('(event/action[@name="client_app_name"]/value)[1]', 'nvarchar(max)') as action_client_app_name, event_data.value ('(event/action[@name="client_hostname"]/value)[1]', 'nvarchar(max)') as action_client_hostname, event_data.value ('(event/action[@name="database_name"]/value)[1]', 'nvarchar(max)') as action_database_name, event_data.value ('(event/action[@name="nt_username"]/value)[1]', 'nvarchar(max)') as action_nt_username, event_data.value ('(event/action[@name="session_id"]/value)[1]', 'int') as action_session_id, event_data.value ('(event/action[@name="sql_text"]/value)[1]', 'nvarchar(max)') as action_sql_text from xevents go if exists (select * from sys.server_event_sessions where name = 'sqlws_xevents_attention') drop event session sqlws_xevents_attention on server go create event session sqlws_xevents_attention on server add event sqlserver.attention (action (sqlserver.client_app_name, sqlserver.client_hostname, sqlserver.database_name, sqlserver.nt_username, sqlserver.session_id, sqlserver.sql_text) where duration > 5000 ) add target package0.ring_buffer with (event_retention_mode = ALLOW_SINGLE_EVENT_LOSS, memory_partition_mode = NONE) go /* alter event session sqlws_xevents_attention on server state = start go --Execute your workload with xevents (event_name) as ( select event.value ('(@name)[1]', 'varchar(max)') as event_name from ((select cast (xest.target_data as xml) as target_data from sys.dm_xe_sessions as xes inner join sys.dm_xe_session_targets as xest on (xes.address = xest.event_session_address) where xes.name = 'sqlws_xevents_attention' and xest.target_name = 'ring_buffer') as td cross apply target_data.nodes ('//event[@name="attention"]') as x (event)) ) select event_name, count(*) from xevents group by event_name go select * from sqlws_xev_attention go alter event session sqlws_xevents_attention on server state = stop go */
调优建议
对于连接耗时,当然务必要找到具体原因,是网络问题还是验证问题;对于查询超时,多为语句性能问题导致,如阻塞、未使用合理的索引、输出数据量太大等原因。对于临时解决问题,可以在连接配置里、或在程序里的语句级参数属性调大配置值。当然应及时找出问题的根源并解决。
问题
语句
查询
事件
原因
版本
输出
配置
详尽
上下
上下文
信息
参数
基础
属性
工具
建议
性能
数据
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
一加手机网络安全检测
驾考培训软件开发
上海市局网络安全侦察支队
小鸿哥软件开发
汽车网络技术的优点是什么
宝山区品质软件开发服务价格
计算机网络安全工作措施
生活中网络安全防范论文
28岁零基础学软件开发
长沙电脑软件开发靠谱吗
数据库实验报告3
服务器管理网络连接
如何查询服务器端口状态
数据库系统概论代码考点
50用户配置服务器
visio软件开发流程图
苏州未石互动 软件开发
千锋网络安全课表
比喻网络安全古诗
广德新能源软件开发服务检修
百度云服务器主机地址在哪
重庆云阳网上生鲜软件开发
wps怎么调取数据库打印标签
工业网络技术求职信
服务器管理网络连接
台服冒险岛服务器维护
数据库编写视图查询
长宁区软件开发技术服务案例
辽宁信息化软件开发过程参考价格
服务器维护与管理区别