時間を割いて私の質問を読んでくれてありがとう。私たちは大量のデータを処理するT-SQLを使ってシステムを構築しました。このデータの処理を開始すると、通常、この操作には約15分かかります。この間、何らかの理由で、データベース内のすべてのオブジェクトがロックされているように見えます。いくつか拡張すると、私は書かれているテーブルを照会することができないことを理解しています。しかし、SQL Serverでは、たとえばオブジェクトエクスプローラのテーブルノードでF5キーを使用してテーブルの一覧を更新すると、タイムアウトロックメッセージが表示されます。以下のテンプレートに基づいてSQL Server大きなトランザクションすべてのテーブルをロック
私のコードの作品:
今CREATE PROCEDURE Sample
as
SET NOCOUNT, XACT_ABORT ON
BEGIN TRY
BEGIN TRANSACTION
...
COMMIT TRANSACTION
END TRY
BEGIN CATCH
BEGIN
PRINT 'STORED PROCEDURE - Returned errors while processing'
ROLLBACK TRANSACTION
END
END CATCH
、私はこれは私がSELECT WITH(NOLOCK)任意のテーブルにクエリを実行することができます起動したとき。しかし、私はビュー、ストアドプロシージャの定義を見ることはできませんまたは基本的にデータベース内の他の種類の操作を行います。
私はすでにREAD UNCOMMITTED分離レベル設定を行っていますが、それは違いはありません。
この問題についてお手伝いします。
敬具、あなたのTRYのCATCHブロックである
分離レベルは、ステートメントがどのように動作するかの選択に影響、それらは、DDLには影響しません、DML..Locking、ブロッキングを、大きなトピックですので、ブロッキングをロッキング解決する方法について検索してくださいそこから始める – TheGameiswar