手机
当前位置:查字典教程网 >编程开发 >mssql数据库 >SQL Server 2016里的sys.dm_exec_input_buffer的问题
SQL Server 2016里的sys.dm_exec_input_buffer的问题
摘要:我们都知道DBCC命令有点尴尬,因为你不能在T-SQL查询里调用它们,你也不能关联它们的输出到其它DMV/DMF。例如你想为每个用户会话返回...

我们都知道DBCC命令有点尴尬,因为你不能在T-SQL查询里调用它们,你也不能关联它们的输出到其它DMV/DMF。例如你想为每个用户会话返回最后一个执行的SQL语句....

sys.dm_exec_input_buffer

在SQL Server 2016里,事情就变得简单多,因为微软为你提供了一个新DMFsys.dm_exec_input_buffer,它和DBCC INPUTBUFFER一样做同样的工作。

使用sys.dm_exec_input_buffer非常简单:这个DMF需要2个输入参数——会话和指定会话的请求id。下面代码展示了调用新函数的简单例子。

SELECT * FROM sys.dm_exec_input_buffer(55, 0) GO

但你可以做更复杂的事情,像用CROSS APPLY运算符与其它DMV关联信息。我们来看下面的代码。

SELECT r.session_id, ib.event_info FROM sys.dm_exec_requests r JOIN sys.dm_exec_sessions s ON s.session_id = r.session_id CROSS APPLY sys.dm_exec_input_buffer(r.session_id, r.request_id) ib WHERE s.is_user_process = 1 GO

如你在这里看到的,这个查询对于所有当前执行的查询,返回所有提交的SQL语句。很简单,是不是?

【SQL Server 2016里的sys.dm_exec_input_buffer的问题】相关文章:

SQL Server 2008 R2数据库镜像部署图文教程

SQL Server 2005 开启数据库远程连接的方法

解决SQL Server 表或索引的碎片问题

SQL Server 2000的安全配置

SQL Server 索引介绍

SQL Server 2008 清空删除日志文件(瞬间日志变几M)

Sql Server datetime问题

sql server中的decimal或者numeric的精度问题

SQL Server 2008中的FileStream介绍

SQLServer视图的总结

精品推荐
分类导航