Questions tagged «cursors»

2
两个会话可以创建具有相同名称的#temp表吗?
我正在创建一个临时表(#myTable)并使用一个游标。当并发用户通过我的应用程序访问游标时,这是否会产生问题?它可以让我创建具有相同名称的单独的临时表吗? 以下是示例代码: Open cursor; Fetch Next from cursor into @Variable_Temp_Table_Name; Create table #myTable(pk int) While @@Fetch_Status = 0 Begin Fetch Next from cursor into @Variable_Temp_Table_Name; End

1
sp_cursoropen和并行性
我遇到了一个查询似乎无法解决的性能问题。 我从游标定义中拉出了查询。 该查询需要几秒钟才能执行 SELECT A.JOBTYPE FROM PRODROUTEJOB A WHERE ((A.DATAAREAID=N'IW') AND ((A.CALCTIMEHOURS<>0) AND (A.JOBTYPE<>3))) AND EXISTS (SELECT 'X' FROM PRODROUTE B WHERE ((B.DATAAREAID=N'IW') AND (((((B.PRODID=A.PRODID) AND ((B.PROPERTYID=N'PR1526157') OR (B.PRODID=N'PR1526157'))) AND (B.OPRNUM=A.OPRNUM)) AND (B.OPRPRIORITY=A.OPRPRIORITY)) AND (B.OPRID=N'GRIJZEN'))) AND NOT EXISTS (SELECT 'X' FROM ADUSHOPFLOORROUTE C WHERE ((C.DATAAREAID=N'IW') AND ((((((C.WRKCTRID=A.WRKCTRID) AND (C.PRODID=B.PRODID)) AND …

1
sp_cursorprepexec导致5300万次读取?
我们正在使用SQL Server 2012运行Dynamics AX 2012安装。我知道不应再使用游标,但是AX正在使用它,并且我们无法更改此行为,因此必须使用它。 今天,我遇到了一个非常糟糕的查询,读取次数超过5300万,执行时间超过20分钟。 我通过我们的监视工具SentryOne捕获了此查询。 declare @p1 int set @p1=1073773227 declare @p2 int set @p2=180158805 declare @p5 int set @p5=16 declare @p6 int set @p6=1 declare @p7 int set @p7=2 exec sp_cursorprepexec @p1 output,@p2 output,N'@P1 bigint,@P2 nvarchar(5),@P3 bigint,@P4 nvarchar(8),@P5 bigint,@P6 bigint,@P7 bigint,@P8 bigint,@P9 bigint,@P10 bigint,@P11 bigint,@P12 bigint,@P13 bigint,@P14 …

3
sp_WhoIsActive(SQL Server 2008 R2)上有很多“ FETCH API_CURSOR0000…”
我有一个奇怪的情况。使用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 结果: 这很简单select。为什么使用f etch_cursor? 另外,我也看到很多“空白”的sql_texts。这个“光标”有什么用吗? DBCC INPUTBUFFER (spid) 告诉我这个: 有这个问题 在这里(我做的),但我不知道这是否是同样的事情。 编辑1: 使用kin提供的查询,我看到以下内容: 编辑2: 使用活动监视器,可以看到以下内容: 这是最昂贵的查询(第一个查询是有意的,我们知道)。 再一次,我想知道,为什么这select * from...是FETCH CURSOR... 的原因 编辑3: 此“ select * from...”正在从另一台服务器(通过linked server)运行。 好吧,现在我在理解@kin所说的内容时遇到了问题。 这是execution …

3
什么时候绝对需要程序查询?
我知道我们倾向于不惜一切代价避免SQL Server中的游标和循环,但是在某些情况下您绝对需要过程查询,而基于集合的查询却不会为您提供结果? 我了解两者之间的区别,只是我从未遇到过需要使用游标的情况。我想知道是否有这种情况。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.