ので、私はsys.dm_exec_requestsフェイク長時間実行されるSQL文の
「フェイク」を試すことができますが、それを記述するための最良の方法ではありませんが、誰もが、おそらくに良いヒントを持っていません自動生成されたレコードを選択しますか?おそらくCTEを使用していますか?
ので、私はsys.dm_exec_requestsフェイク長時間実行されるSQL文の
「フェイク」を試すことができますが、それを記述するための最良の方法ではありませんが、誰もが、おそらくに良いヒントを持っていません自動生成されたレコードを選択しますか?おそらくCTEを使用していますか?
上の変化は、ここで実行時間の長いSQL文です:それは実行するために5分程度かかります
WAITFOR DELAY '0:05';
。 1つのクエリウィンドウで
私が「CTE」と書いていたのと同じように、私は考えました。クイック検索以降と http://smehrozalam.wordpress.com/2009/06/09/t-sql-using-common-table-expressions-cte-to-generate-sequences/
--define start and end limits
Declare @start bigint, @end bigint
Select @start=1, @end=99999
;With NumberSequence(Number) as
(
Select @start as Number
union all
Select Number + 1
from NumberSequence
where Number < @end
)
--select result
Select * From NumberSequence Option (MaxRecursion 0)
、以下を実行する:
BEGIN TRANSACTION
SELECT * from TableY with (XLOCK)
そして、別のウィンドウで、TableY
にアクセスしようとする任意の(*)クエリを実行します。そして、最初のウィンドウを閉じたり、ROLLBACK
またはCOMMIT
を実行するまで、好きなだけ実行します。
(*)TableY
への参照にNOLOCK
ヒントを追加しないものとします。
ありがとう、私はテーブルロックを見るためのこの1つが好きです。 –
[これは動作することが保証されていません](http://sqlblog.com/blogs/paul_white/archive/2010/11/01/read-committed-shared-locks-and-rollbacks.aspx) –
ありがとうございます、私はこれがポイントのようにまっすぐですが好きです。 –