Rac*_*SQL 9 sql-server-2008 process execution-plan cursors
我有一个奇怪的情况。使用sp_whoisactive
我可以看到:
好的,通过这个查询,我可以看到是什么触发了(这个词在英语中存在吗?)它:
SELECT c.session_id, c.properties, c.creation_time, c.is_open, t.text
FROM sys.dm_exec_cursors (SPID) c --0 for all cursors running
CROSS APPLY sys.dm_exec_sql_text (c.sql_handle) t
Run Code Online (Sandbox Code Playgroud)
结果:
这是一个简单的select
. 为什么要使用 f etch_cursor
?
另外,我也看到了很多“空白”的 sql_texts。这与这个“光标”有关系吗?
DBCC INPUTBUFFER (spid)
给我看这个:
有这个问题 在这里(我做的),但我不知道这是否是同样的事情。
编辑1:
使用 kin 提供的查询,我看到了这一点:
编辑2:
使用活动监视器,我可以看到:
这是最昂贵的查询(第一个是故意的,我们知道)。
再一次,我想知道,为什么这select * from...
是FETCH CURSOR
……的原因。
编辑3:
这个“ select * from
...”是从另一台服务器(通过linked server
)运行的。
好吧,现在我无法理解@kin 所说的内容。
这是execution plan
查询的(在数据库的同一服务器中运行):
这是现在,通过链接服务器在另一台服务器上运行的执行计划:
好的,也不是问题。现在!执行计划,通过**activity monitor**
(相同select * from
):