TraceWrite waittype
今天上午突然开发人员叫起来说数据库非常慢,马上连上数据查看。
使用sp_who2和下面脚本可以看到大量的TraceWrite 等待事件。我的第一反应就是有人启用的Profiler在生产服务器上抓数据了。由于这个服务器的sa帐号有很多开发知道(历史旧帐,不提了。不怕大家笑话,开发知道sa帐号,DBA不知道。如果维护机器需要让维护团队的头给开终端上去维护,这都是他妈什么地方。算了,反正是帮忙的,过几天就走了)所以,它们经常一激动就跑到服务器上搞一把。这也不是第一次了。既然知道原因了,马上维护团队的头给分公司的开发团队的头打电话,问他们的兄弟是不是搞什么东西了?过了一会数据库就恢复正常了。总部这边的维护头不干了,一定要找出谁干的。让我查,好吧。苦活都是我的~~~~
先查一下,我收集的一些计数器的值吧。可以看到在40到50之单连接数达到了967的疯值。一般正常的情况这个服务器也就400多点。

再看看errorlog

这个就很明显了,有人启动了profiler,另一个错误信息也提示了为什么当时的connnections那么高。
Error: 18056, Severity: 20, State: 29.
The client was unable to reuse a session with SPID 586, which had been reset for connection pooling. The failure ID is 29. This error may have been caused by an earlier operation failing. Check the error logs for failed operations immediately before this error message.
可以明白,有人启动了profiler抓数据,造成了服务器内存压力,最后影响到了连接池。造成用户感觉连不上服务。好了下一步就是找出是谁干得了。
突然想起来好像SQL 自带有一个trace,去那里边看看吧。
SELECT *
FROM sys.fn_trace_getinfo(0)

找到那个log_2520.trc,看看里面有什么东西没有。
有了

好了,可以交差了。
SELECT
[owt].[session_id],
[owt].[exec_context_id],
[owt].[wait_duration_ms],
[owt].[wait_type],
[owt].[blocking_session_id],
[owt].[resource_description],
CASE [owt].[wait_type]
WHEN N'CXPACKET' THEN
RIGHT ([owt].[resource_description],
CHARINDEX (N'=', REVERSE ([owt].[resource_description])) - 1)
ELSE NULL
END AS [Node ID],
[es].[program_name],
[est].text,
db_name([er].[database_id]) [database],
[eqp].[query_plan],
[er].[cpu_time]
FROM sys.dm_os_waiting_tasks [owt]
INNER JOIN sys.dm_exec_sessions [es] ON
[owt].[session_id] = [es].[session_id]
INNER JOIN sys.dm_exec_requests [er] ON
[es].[session_id] = [er].[session_id]
OUTER APPLY sys.dm_exec_sql_text ([er].[sql_handle]) [est]
OUTER APPLY sys.dm_exec_query_plan ([er].[plan_handle]) [eqp]
WHERE
[es].[is_user_process] = 1
ORDER BY
[owt].[session_id],
[owt].[exec_context_id];
GO
SQL SERVER – TRACEWRITE – Wait Type – Wait Related to Buffer and Resolution
SQL Trace Architecture and Terminology
Error 18056 can be unwanted noise in certain scenarios
TraceWrite waittype的更多相关文章
- 根据WaitType诊断故障
在查询执行时,等待次数和等待时间在一定程度上指示查询的瓶颈,甚至非常有助于对系统进行诊断.偶尔一次的异常等待,不足以表明系统存在瓶颈,但是,SQL Server实例经常出现特定的等待类型,并且等待时间 ...
- 性能调优9:根据WaitType诊断性能
SQL Server数据库接收到查询请求,从生成计划到执行计划的过程,等待次数和等待时间在一定程度上揭示了系统性能的压力,如果资源严重不足,就会成为性能的瓶颈.因此,对等待的监控非常有助于对系统性能进 ...
- WaitType:ASYNC_IO_COMPLETION
项目组有一个数据库备份的Job运行异常,该Job将备份数据存储到remote server上,平时5个小时就能完成的备份操作,现在运行19个小时还没有完成,backup命令的Wait type是 AS ...
- WaitType:ASYNC_NETWORK_IO
官方文档的定义,是指SQL Server 产生的结果集需要经过Network传递到Client,Network不能很快将结果集传输到Client,导致结果集仍然驻留在SQL Server的Sessio ...
- WaitType:CXPACKET
CXPACKET 等待类型是SQL Server 并发执行一个query时产生的.在run一个big query时,SQL Server充分利用系统的所有资源(CPU,Memory,IO),在最短时间 ...
- WaitType:SOS_SCHEDULER_YIELD
今天遇到一个query,处于SOS_SCHEDULER_YIELD 状态,physical IO 不增加,CPU的使用一直在增长.当一个sql query长时间处于SOS_SCHEDULER_YIEL ...
- Troubleshooting SQL Server RESOURCE_SEMAPHORE Waittype Memory Issues
前言: 本文是对博客https://www.mssqltips.com/sqlservertip/2827/troubleshooting-sql-server-resourcesemaphore-w ...
- WaitType:ASYNC
项目组有一个数据库备份的Job运行异常,该Job将备份数据存储到remote server上,平时5个小时就能完成的备份操作,现在运行19个小时还没有完成,backup命令的Wait type是 AS ...
- [SQL]透過redgate SQL Monitor 來找出 ASYNC_NETWORK_IO 問題
原文:[SQL]透過redgate SQL Monitor 來找出 ASYNC_NETWORK_IO 問題 最近因為在查一個SQL的效能問題,透過 sys.dm_os_wait_stats 來取得To ...
随机推荐
- 正排索引(forward index)与倒排索引(inverted index)
正常的索引一般是指关系型数据库里的索引. 把不同的数据存放到不同的字段中.如果要实现baidu或google那种搜索,就需要与一条记录的多个字段进行比对,需要 全表扫描,如果数据量比较大的话,性能就很 ...
- 在web应用中使用文件
使用HTML5 DOM新增的File API,现在可以让网页要求用户选择本地文件,并且读取这些文件的信息了.选择的方式既可以是HTML<input> 元素,也可以是拖拽 . 你可以在chr ...
- Visual Studio Code 的使用
常用快捷键 常用General 按 Press 功能 Function Ctrl + Shift + P,F1 显示命令面板 Show Command Palette Ctrl + P 快速打开 Qu ...
- 一 NIO的概念
Java NIO由下列几个核心部分组成: Channels(通道) Buffers(缓冲区) Asynchronous IO(异步IO) Channel 和 Buffer 基本上所有的IO在NIO中都 ...
- mysql三表联合查询
-- SELECT d.userId, d.userPhoNum, a.orderId, a.productType, b.courseId, b.courseName, c.payJe -- FRO ...
- mysql if函数使用例子
1.场景一 有时查询数量a 同时查询过滤后的数量b 2. 代码 SELECT count(id) as total_count, count( IF ( date(order_time) = DATE ...
- 记录开发Nodejs c++ addon的一些经验(一、技术栈)
Nodejs c++ addon 是用c++去编写Nodejs的插件 技术栈: 1.node-gyp 一个用于把c++文件编译成node可执行文件的库 2.v8 google v8引擎 用于处理c++ ...
- 新手必需用!大道至简的前端编辑器Sublime Text
很多人在进入学习前端的时候(包括我自己),除了选择学习合适的技术,还需要一个得(自)心(己)应(喜)手(欢)的开发工具,一个得心应手的开发工具除了可以令你的效率大大提高,也可以令你在写代码的时候,心情 ...
- Session和Cookie详解(1)
面试常问的有关session和cookie的问题: 1.session在分布式环境下怎么解决 2.集群下如何保证session踩中 3.cookie的大小 4.服务器怎么识别一个用户的 5.sessi ...
- GIT团队合作探讨之一-保持工作同步的概念和实践
感谢英文原文作者,这是我看到的关于git协同工作写的最清晰简洁的文章了: https://www.atlassian.com/git/tutorials/syncing/git-push SVN使用一 ...