关于sys.dm_exec_requests】的更多相关文章

我知道SQL Server有很多视图和函数让我来了解SQL Server的运行状态.我还想知道SQL Server上关于来自用户或者应用的活动请求信息.怎么查询这些信息呢? SQL Server的动态管理视图DMV sys.dm_exec_requests可以实现.但是它不仅仅显示了来自连接用户或应用的请求.比如,它还显示了SQL Server有非常多的后台任务.比如下面的简单查询: select session_id,start_time,command from sys.dm_exec_re…
sys.dm_exec_requests (Transact-SQL)应用: 针对 SQL Server 内正在执行的每个请求返回一行.sys.dm_exec_connections.sys.dm_exec_sessions 和sys.dm_exec_requests 服务器范围动态管理视图映射到 sys.sysprocesses 系统视图(先前为系统表). 先标记下:http://blog.csdn.net/peter82/article/details/46558235 https://ms…
前面写了两篇了,其实不光是说sys.dm_os_waiting_tasks的应用,研究了挺长时间的并行,自己有了一些理解,所以分享出来希望有什么理解错误的地方大神们及时纠正!! 给出前两篇的连接: 上篇 中篇 废话不多说,直接开整. 前面两篇的编写有一个疑惑...最初认为的并行比如这个语句: select * from t1 inner join t2 on t1.a = t2.a ) 在我的理解并行是开几个线程去获取T1数据,另外几个线程获取T2 数据,然后关联结果形成最后结果集.可是试验了才…
上一篇我们说了一下sys.dm_exec_requests 和 sys.dm_os_waiting_tasks 在获取并行等待的时候得不同结果,这一篇我们谈论下我的第二个疑问:为什么一个并行计划(4线程)却一下出现了那么多等待,SQL的并行到底是怎么执行的!!!! 先贴以下上篇sys.dm_os_waiting_tasks 的结果图: 我们分析一下这个结果的task_address 可以看出去掉重复其实只有9个,也就是说一个并行(4线程,配置不同,情况也不同)会有9个task. 又是线程,又是t…
很多人在查看SQL语句等待的时候都是通过sys.dm_exec_requests查看,等待类型也是通过wait_type得出,sys.dm_os_waiting_tasks也可以看到session的等待那么有什么区别呢.... 废话不多说直接开整. 测试版本2012 sys.dm_os_waiting_tasks 的字段说明: waiting_task_address varbinary(8) 等待任务的地址. session_id smallint 与任务关联的会话的 ID. exec_con…
在你的DBA职业里,你们谁有用过DBCC INPUTBUFFER命令,来获得已经提交到SQL Server特定会话的最后SQL语句?请举手!大家都用过! 我们都知道DBCC命令有点尴尬,因为你不能在T-SQL查询里调用它们,你也不能关联它们的输出到其它DMV/DMF.例如你想为每个用户会话返回最后一个执行的SQL语句.... sys.dm_exec_input_buffer 在SQL Server 2016里,事情就变得简单多,因为微软为你提供了一个新DMFsys.dm_exec_input_b…
sys.dm_tran_locks 返回有关当前活动的锁管理器资源的信息.向锁管理器发出的已授予锁或正等待授予锁的每个当前活动请求分别对应一行. 列名 数据类型 说明 resource_type nvarchar(60) 表示资源类型.该值可以是下列值之一:DATABASE.FILE.OBJECT.PAGE.KEY.EXTENT.RID.APPLICATION.METADATA.HOBT 或 ALLOCATION_UNIT. resource_subtype nvarchar(60) 表示 re…
这三个视图都是存在于SQL Server的每个数据库中.在SQL Server 2000中,它们都是系统表,而不是视图. 关于两个版本中系统表和系统的视图的对应关系,参考:http://technet.microsoft.com/zh-cn/library/ms187997.aspx sys.all_objects:显示所有架构范围内的用户定义对象和系统对象,参考 http://technet.microsoft.com/zh-cn/library/ms178618.aspx sys.sysob…
当SQL Server Engine 接收到Session发出的Request时,SQL Server OS将Request和Task绑定,并为Task分配一个Workder.在TSQL Query执行时,SQL Server将Request和一个或多个Task绑定,如果以并行的方式执行Request,SQL Server根据Max DOP(Maximum Degree Of Parallelism) 配置选项创建新的Child Tasks:例如,如果Max DOP=8,那么将会存在 1个Mas…
SQL Server的IO性能受到物理Disk的IO延迟和SQL Server内部执行的IO操作的影响.在监控Disk性能时,最主要的度量值(metric)是IO延迟,IO延迟是指从Application创建IO请求,到Disk完成IO请求的时间延迟.如果物理Disk不能及时完成IO请求,跟不上请求负载的速度,那么SQL Server就容易出现性能问题.SQL Server内部在执行一些特定的操作时,会和Disk做读写交互,这也会影响物理硬盘响应SQL Server的IO请求的性能,使查询进程处…
当数据库运行比较缓慢时,我们需要实时查看当前有什么Session在运行,获得信息越完整,对于分析低性能的原因越有帮助.根据之前调优的经历,简单几步分析如下: 1.通过SQL Server内置的Sp_who查询 2.更深入的可以通过Sp_who2查询 3.比第2点更丰富的,可以通过下面的语句,不但可以查询出当前executing_statement,还可以获取到当前语句的执行计划 --语句如下: SELECT des.session_id , des.status , des.login_name…
SELECT o.name AS tableName,c.name AS colName,k.keyno AS sort FROM sysindexes i JOIN sysindexkeys k ON i.id = k.id AND i.indid = k.indid JOIN sysobjects o ON i.id = o.id JOIN syscolumns c ON i.id=c.id AND k.colid = c.colid WHERE EXISTS( SELECT 1 FROM…
收缩整个数据库 DBCC SHRINKDATABASE (dbName) 收缩单个文件DBCC SHRINKFILE (FileName) 查找所有的文件名称USE dbNameEXEC sp_helpfile 例如对 AdventureWorks 数据库/* Shrink Whole AdventureWorks Database */DBCC SHRINKDATABASE (AdventureWorks)GO/* Get the Logical File Name */USE Adventu…
SQL Server是客户端 - 服务器平台.通过发送包含对数据库请求的命令是与后端数据库进行交互的唯一方法.你的应用程序和数据库之间通信的协议被称为TDS(表格数据流协议). 应用程序可以使用该协议支持的任意一个客户端实现,主要有 SqlClient,OLEDB,ODBC,JDBC,PHP SQL Server驱动程序或者开源的FreeTDS(http://www.freetds.org/ ). 它的主要作用是告诉数据库引擎你的应用程序通过TDS协议请求数据库需要做何种事情. TDS协议请求(…
SQL Server2016 新功能实时查询统计信息 很多时候有这样的场景,开发抱怨DBA没有调优好数据库,DBA抱怨开发写的程序代码差,因此,DBA和开发都成为了死对头,无法真正排查问题. DBA只能使用Windows性能监视器,SQL Server内置的活动监视器.SQL Trace.SQL Profiler.Performance Dashboard等工具,或者使用执行计划来查看查询成本. 为了让DBA有更多有效工具排查问题,SQL Server2016推出了很多新功能,其中一项功能是 L…
SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享 第一步建库和建表 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] GO --建表 USE [MonitorElapsedHighSQL] GO --1.表[SQLCountStatisticsByDay] --抓取到的sql语句数量 CREATE TABLE [dbo].[SQLCountStatisticsByDay] ( id , ) PRIMARY KEY ,…
非常全面的SQL Server巡检脚本来自sqlskills团队的Glenn Berry 大牛 Glenn Berry 大牛会对这个脚本持续更新 -- SQL Server 2012 Diagnostic Information Queries -- Glenn Berry -- April 2015 -- Last Modified: April 27, 2015 -- http://sqlserverperformance.wordpress.com/ -- http://sqlskills…
上一篇我们简单的介绍了,语句优化的三板斧,大部分语句三板斧过后,就算不成为法拉利也能是个宝马了.为了方便阅读给出系列文章的导读链接: SQL SERVER全面优化-------Expert for SQL Server 诊断系列 本篇主要讲述几个常见的系统等待,透过这些等待,看看系统存在什么问题,怎么样解决这些问题.结合系统三巨头(CPU,内存,磁盘)综合展现系统问题和这些元素的联系. 首先我们举个例子:前文提到了,一个好的SQL语句就好比一辆时速180的好车,好的系统硬件(CPU,内存,磁盘)…
前面几篇已经陆续从服务器的几个大块讲述了SQL SERVER数据库的诊断和调优方式.加上本篇可以说已经可以完成常规的问题诊断及优化,本篇就是SQL SERVER中的锁.为了方便阅读给出系列文章的导读链接: SQL SERVER全面优化-------Expert for SQL Server 诊断系列 首先阅读本文之前,大家都应该知道锁是影响你性能的一个重大因素,那么SQL SERVER为什么要引入锁呢?那就是要解决多个用户同时对数据库的并发操作时会带来以下数据不一致的问题.我想为了保证数据一致性…
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础]04.表表达式-上篇 [T-SQL基础]04.表表达式-下篇 [T-SQL基础]05.集合运算 [T-SQL基础]06.透视.逆透视.分组集 [T-SQL基础]07.数据修改 [T-SQL基础]08.事务和并发 [T-SQL基础]09…
什么?有个 SQL 执行了 8 秒! 哪里出了问题?臣妾不知道啊,得找 DBA 啊. DBA 人呢?离职了!!擦!!! 程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA". 索引 按页编号查看数据表信息 获取查询 SELECT 语句的执行次数排名 看看哪些 Ad-hoc Query 在浪费资源 查看当前处于等待状态的 Task 在等什么 查询谁在占着 Session 连接 查询程序占用的 SPID 信息 查询所有执行 SQL 对应的 sql_handle 查询最近…
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/内存池/缓冲区 概述 了解执行计划对数据库性能分析很重要,其中涉及到了语句性能分析与存储,这也是写这篇文章的目的,在了解执行计划之前先要了解一些基础知识,所以文章前面会讲一些概念,学起来会比较枯燥,但是这些基础知识非常重要. 目录 概述 基础概念 怎样缓存执行计划 SQL Server自动删除执行计划 重新编译执行计划 测试 执行计划相关系统视图 手动清空缓存执行计划 测试索引更改对执行计划的影响 测试增加字段对执行计划的影响…
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/故障恢复/master 概述 SQL Server 维护一组系统级数据库(称为“系统数据库”),这些数据库对于服务器实例的运行至关重要.每次进行大量更新后,都必须备份多个系统数据库.必须备份的系统数据库包括 msdb.master 和 model.如果有任何数据库在服务器实例上使用了复制,则还必须备份 distribution 系统数据库.备份这些系统数据库,就可以在发生系统故障(例如硬盘丢失)时还原和恢复 SQL Serve…
项目组有一个数据库备份的Job运行异常,该Job将备份数据存储到remote server上,平时5个小时就能完成的备份操作,现在运行19个小时还没有完成,backup命令的Wait type是 ASYNC_IO_COMPLETION: 根据MSDN 官方文档的定义:Occurs when a task is waiting for asynchronous I/O operations to finish. 该等待类型表示:Task在等待异步IO操作的完成.进程申请了一个IO操作,但是系统(D…
CXPACKET 等待类型是SQL Server 并发执行一个query时产生的.在run一个big query时,SQL Server充分利用系统的所有资源(CPU,Memory,IO),在最短时间内返回结果.在拥有多个Processor的系统中,如果将一个Query的Wordload 分布在多个Processor上,那么每个Processor只处理一部分数据,这将成倍的减少查询的时间消耗,相应地,成倍的提高查询性能. 在执行Query时,SQL Server 估计其时间 Cost,如果大于…
今天遇到一个问题,有用户反应,在site上打开报表,一直loading,出不来结果. 遇到这种问题,我立刻simulate用户使用Filter Condition,问题repro,看来不是偶然事件,通过SQL Server Profile Capture 到执行的查询语句. Step1,奇怪的是,在SSMS中执行,SQL Server 很快返回结果,初步结论是问题可能不是由于SQL Server 造成的(事实证明,我错了). 我的第一反应:是不是network的问题,点击F12,查看Networ…
一,使用 Performance counter 监控Disk IO问题 1,Physical Disk vs. Logical Disk Windows可以在一个Physical Disk上划出若干个逻辑分区,每一个逻辑分区是一个Logical Disk.对于分配在同一个Physical Disk上的Logical Disks,其读写操作共享Physical Disk的IO带宽.Windows给每一个Logical Disk分配一个盘符,App通过盘符来读写数据. 关于Disk Perform…
今天遇到一个query,处于SOS_SCHEDULER_YIELD 状态,physical IO 不增加,CPU的使用一直在增长.当一个sql query长时间处于SOS_SCHEDULER_YIELD wait,一般情况下,说明这个sql query正在持续地,频繁地使用CPU. SOS_SCHEDULER_YIELD Explanation: SQL Server has multiple threads, and the basic working methodology for SQL…
Sql Server Replication Monitor 提供一个feature,能够verify Replication的 Publication 和 Subscription 的数据同步status. 1,在Replication Monitor的Left pane中点击Repulication,弹出快捷菜单 "Validate Subscriptions...",开始Validate one subscription. 2,在Replication Monitor的Right…
    数据库产生阻塞(Blocking)的本质原因 :SQL语句连续持有锁的时间过长 ,数目过多, 粒度过大.阻塞是事务隔离带来的副作用,它是不可避免的,而且是一个数据库系统常见的现象. 但是阻塞的时间和出现频率要控制在一定的范围内,阻塞持续的时间过长或阻塞出现过多(过于频繁),就会对数据库性能产生严重的影响.     很多时候,DBA需要知道数据库在出现性能问题时,有没有发生阻塞? 什么时候开始的?发生在那个数据库上? 阻塞发生在那些SQL语句之间? 阻塞的时间有多长? 阻塞发生的频率? 阻…