タグ付けされた質問 「cursors」

2
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上の「FETCH API_CURSOR0000…」が多数(SQL Server 2008 R2)
変な状況です。これ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が提供するクエリを使用すると、次のようになります。 EDIT2: アクティビティモニターを使用して、これを確認できます。 これは最も負荷の高いクエリです(最初のクエリは意図的なものであり、私たちはそれについて知っています)。 繰り返しますが、なぜこれselect * from...が理由なのかを知りたいのFETCH CURSORですが... EDIT3: この " select * from..."は別のサーバーから(経由でlinked server)実行されています。 さて、@ kinが言ったことを理解するのに問題があります。 これはexecution …

3
手続き型クエリが絶対に必要なのはいつですか?
SQL Server内でカーソルとループをあらゆるコストで回避する傾向があることは知っていますが、手続き型クエリが絶対に必要で、セットベースのクエリでは結果が得られない状況は何ですか? 2つの違いを理解していますが、カーソルを使用する必要がある状況に至ったことがありません。そのような状況があるのだろうか。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.