中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL Server超時診斷

發布時間:2020-06-18 01:10:42 來源:網絡 閱讀:2433 作者:UltraSQL 欄目:數據庫

連接超時


對于連接超時,首先可以查看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    
*/


調優建議


對于連接耗時,當然務必要找到具體原因,是網絡問題還是驗證問題;對于查詢超時,多為語句性能問題導致,如阻塞、未使用合理的索引、輸出數據量太大等原因。對于臨時解決問題,可以在連接配置里、或在程序里的語句級參數屬性調大配置值。當然應及時找出問題的根源并解決。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

寻甸| 小金县| 绥阳县| 吴川市| 南乐县| 海宁市| 花莲县| 宜良县| 金坛市| 会东县| 吉林市| 新田县| 汉阴县| 大埔区| 故城县| 临汾市| 滨州市| 仙桃市| 清涧县| 布尔津县| 房山区| 宜君县| 黎平县| 平罗县| 萨嘎县| 遂平县| 乌兰浩特市| 宜兰市| 璧山县| 岱山县| 宁南县| 石台县| 从江县| 洞头县| 色达县| 抚远县| 武穴市| 嘉黎县| 江阴市| 济宁市| 保定市|