[quote=引用 12 楼 z10843087 的回复:] [quote=引用 11 楼 mcxhh2005 的回复:] [quote=引用 10 楼 z10843087 的回复:] @mcxhh2005 1.也可以认为大于50的就是用户的,小于50是系统的 2.用下面的代码,建立连接后就会建立一个会话, sqlConnection.Open(); 你可以运行上面代码后,查看 SELECT * FROM sys.dm_exec_sessions 3.吧2个动态管理视图join起来就可以,如下:SQL SELECT ds.host_name , * FROM sys.dm_exec_requests dr JOIN sys.dm_exec_sessions ds ON dr.session_id = ds.session_id WHERE dr.session_id > 50
SELECT ds.host_name , * FROM sys.dm_exec_requests dr JOIN sys.dm_exec_sessions ds ON dr.session_id = ds.session_id WHERE dr.session_id > 50
[quote=引用 10 楼 z10843087 的回复:] @mcxhh2005 1.也可以认为大于50的就是用户的,小于50是系统的 2.用下面的代码,建立连接后就会建立一个会话, sqlConnection.Open(); 你可以运行上面代码后,查看 SELECT * FROM sys.dm_exec_sessions 3.吧2个动态管理视图join起来就可以,如下:SQL SELECT ds.host_name , * FROM sys.dm_exec_requests dr JOIN sys.dm_exec_sessions ds ON dr.session_id = ds.session_id WHERE dr.session_id > 50
[quote=引用 11 楼 mcxhh2005 的回复:] [quote=引用 10 楼 z10843087 的回复:] @mcxhh2005 1.也可以认为大于50的就是用户的,小于50是系统的 2.用下面的代码,建立连接后就会建立一个会话, sqlConnection.Open(); 你可以运行上面代码后,查看 SELECT * FROM sys.dm_exec_sessions 3.吧2个动态管理视图join起来就可以,如下:SQL SELECT ds.host_name , * FROM sys.dm_exec_requests dr JOIN sys.dm_exec_sessions ds ON dr.session_id = ds.session_id WHERE dr.session_id > 50
@mcxhh2005 1.也可以认为大于50的就是用户的,小于50是系统的 2.用下面的代码,建立连接后就会建立一个会话, sqlConnection.Open(); 你可以运行上面代码后,查看 SELECT * FROM sys.dm_exec_sessions 3.吧2个动态管理视图join起来就可以,如下:SQL SELECT ds.host_name , * FROM sys.dm_exec_requests dr JOIN sys.dm_exec_sessions ds ON dr.session_id = ds.session_id WHERE dr.session_id > 50
[quote=引用 7 楼 mcxhh2005 的回复:] [quote=引用 6 楼 z10843087 的回复:] @mcxhh2005 1.sys.dm_exec_request 也有一列,叫做blocking_session_id 2.你不用把sys.sysprocesses 中的SPID和 sys.dm_exec_requests对应起来的,你以后就直接看sys.dm_exec_requests 这个视图就可以。 3.在同一时间他只有一个session
[quote=引用 6 楼 z10843087 的回复:] @mcxhh2005 1.sys.dm_exec_request 也有一列,叫做blocking_session_id 2.你不用把sys.sysprocesses 中的SPID和 sys.dm_exec_requests对应起来的,你以后就直接看sys.dm_exec_requests 这个视图就可以。 3.在同一时间他只有一个session
@mcxhh2005 1.sys.dm_exec_request 也有一列,叫做blocking_session_id 2.你不用把sys.sysprocesses 中的SPID和 sys.dm_exec_requests对应起来的,你以后就直接看sys.dm_exec_requests 这个视图就可以。 3.在同一时间他只有一个session
[quote=引用 2 楼 z10843087 的回复:] 请教大侠以下问题,谢谢! 1 请问各位大虾 dm_exec_connections、sys.sysprocesses、sys.dm_exec_sessions、dm_exec_requests 、sys.dm_os_tasks 、sys.dm_os_workers、sys.dm_os_threads之前的详细联系和区别? sys.sysprocesses 以前用的SQL 2000使用的,现在都使用 dm_exec_connections、、sys.dm_exec_sessions、dm_exec_requests 这三个动态管理视图代替前面的视图。dm_exec_connections 是查看连接信息的,sys.dm_exec_sessions 是查看会话,dm_exec_requests 是查看请求,要讲这里面的区别,主要就是连接,会话,和请求的区别。客户端连接到数据库,首先要建立连接,,然后是建立会话(会话主要是保存一些配置信息,比如登陆用户,隔离级别等等),request就是正在执行的任务了。 后面3个就是更细粒度的视图了。每个request 就是一个任务,SQL SERVER 使用worker来处理这个任务,一个worker就是一个逻辑cpu。 sys.dm_os_workers就是查询work的信息,sys.dm_os_threads 用到比较少。 2. 如执行一个select/update/delete/insert或一个存储过程或一个view都会生成一个process吧? 你说的process是只的什么?会话吗,每次执行都会建立这样一个会话 3.若执行一个存储过程,会不会成很多个Process? 4. dm_exec_requests与sys.sysprocesses之前好像不是一一对应的,请问他们之间是什么关系? 用dm_exec_requests 更合适些,他主要显示正在执行中的请求
@mcxhh2005 第三个问题忘记回答了。其实用process这个名词不是很好。执行一个存储过程之后有一个会话就是dm_exec_request 只会有一条记录。但是可能会有多个任务。就是在 sys.dm_os_tasks会有记录。 [quote=引用 3 楼 mcxhh2005 的回复:] [quote=引用 2 楼 z10843087 的回复:] 请教大侠以下问题,谢谢! 1 请问各位大虾 dm_exec_connections、sys.sysprocesses、sys.dm_exec_sessions、dm_exec_requests 、sys.dm_os_tasks 、sys.dm_os_workers、sys.dm_os_threads之前的详细联系和区别? sys.sysprocesses 以前用的SQL 2000使用的,现在都使用 dm_exec_connections、、sys.dm_exec_sessions、dm_exec_requests 这三个动态管理视图代替前面的视图。dm_exec_connections 是查看连接信息的,sys.dm_exec_sessions 是查看会话,dm_exec_requests 是查看请求,要讲这里面的区别,主要就是连接,会话,和请求的区别。客户端连接到数据库,首先要建立连接,,然后是建立会话(会话主要是保存一些配置信息,比如登陆用户,隔离级别等等),request就是正在执行的任务了。 后面3个就是更细粒度的视图了。每个request 就是一个任务,SQL SERVER 使用worker来处理这个任务,一个worker就是一个逻辑cpu。 sys.dm_os_workers就是查询work的信息,sys.dm_os_threads 用到比较少。 2. 如执行一个select/update/delete/insert或一个存储过程或一个view都会生成一个process吧? 你说的process是只的什么?会话吗,每次执行都会建立这样一个会话 3.若执行一个存储过程,会不会成很多个Process? 4. dm_exec_requests与sys.sysprocesses之前好像不是一一对应的,请问他们之间是什么关系? 用dm_exec_requests 更合适些,他主要显示正在执行中的请求
请教大侠以下问题,谢谢! 1 请问各位大虾 dm_exec_connections、sys.sysprocesses、sys.dm_exec_sessions、dm_exec_requests 、sys.dm_os_tasks 、sys.dm_os_workers、sys.dm_os_threads之前的详细联系和区别? sys.sysprocesses 以前用的SQL 2000使用的,现在都使用 dm_exec_connections、、sys.dm_exec_sessions、dm_exec_requests 这三个动态管理视图代替前面的视图。dm_exec_connections 是查看连接信息的,sys.dm_exec_sessions 是查看会话,dm_exec_requests 是查看请求,要讲这里面的区别,主要就是连接,会话,和请求的区别。客户端连接到数据库,首先要建立连接,,然后是建立会话(会话主要是保存一些配置信息,比如登陆用户,隔离级别等等),request就是正在执行的任务了。 后面3个就是更细粒度的视图了。每个request 就是一个任务,SQL SERVER 使用worker来处理这个任务,一个worker就是一个逻辑cpu。 sys.dm_os_workers就是查询work的信息,sys.dm_os_threads 用到比较少。 2. 如执行一个select/update/delete/insert或一个存储过程或一个view都会生成一个process吧? 你说的process是只的什么?会话吗,每次执行都会建立这样一个会话 3.若执行一个存储过程,会不会成很多个Process? 4. dm_exec_requests与sys.sysprocesses之前好像不是一一对应的,请问他们之间是什么关系? 用dm_exec_requests 更合适些,他主要显示正在执行中的请求
22,207
社区成员
121,730
社区内容
加载中
试试用AI创作助手写篇文章吧