1

Microsoft SQL Server で特定のクエリまたはすべてのクエリを強制的に遅くして、SQL クエリが長時間実行されたときにクライアント アプリケーションがどのように動作するかをテストすることはできますか? たとえば、I/O または CPU を 1% に大幅に制限します。

残念ながら、データベース内のデータを変更して行を追加することはできません。

SQL Server でクエリ タイムアウトを強制しようとしましたが、残念ながらクライアント アプリケーションに問題SELECT WITH (NOLOCK)があるため、作成したロックは無視されます。

4

2 に答える 2

3

クエリのクエリ タイムアウト エラーを強制するにはSELECT ... FROM MySchema.MyTable WITH (NOLOCK):

SELECT ... FROM MySchema.MyTable WITH (NOLOCK)まだSch-Sロックが必要です。Lock Compatibility (Database Engine)によると、Sch-Slock は lock と競合していSch-Mます。

1) SSMS で新しいクエリを作成し、次のスクリプトを実行します。

BEGIN TRAN

ALTER TABLE MySchema.MyTable
ADD DummyCol INT NULL DEFAULT 0 -- It requires Sch-M lock

--ROLLBACK

NOLOCK2)テーブル ヒントを使用して (クライアント アプリまたは別の SSMS クエリから) クエリを実行します。

SELECT  *
FROM    MySchema.MyTable d WITH(NOLOCK) -- It requires Sch-S lock

3) では、お待ちください。

于 2013-05-02T15:17:54.830 に答える
1

ストアド プロシージャを使用する場合は、WAITFOR DELAYを使用してコードを待機させます。

CPU を制御するにはResource Governerが必要ですが、私は使用していません。IIRC、エンタープライズ版が必要

于 2013-05-02T14:35:46.683 に答える