問題タブ [nolock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - (nolock) または (nolock) - 違いはありますか?
すべては、 with(nolock) が状況に完全に適しているという前提に基づいています。with(nolock) を使用するかどうかについては、すでに多くの質問があります。
私は周りを見回しましたが、使用に実際の違いがあるかどうかを見つけることができませんでしたwith(nolock)
:
または単に(nolock)
:
2つの間に機能的な違いはありますか?文体?
一方が他方より古く、非推奨になる可能性はありますか?
sql - 一時テーブルの NOLOCK
以下に示す手順でテーブルを宣言しました。
そして私は削除機能を実行します:
ダーティ データを読み取ってもデッドロックを回避するために、select ステートメントでのロックを回避しようとしています。ただし、「with (nolock)」は使用できません。エラーは言う:
キーワード「with」付近の構文が正しくありません。このステートメントが共通テーブル式または xmlnamespaces 節である場合、前のステートメントはセミコロンで終了する必要があります。
一時テーブルに NOLOCK を適用する方法はありますか?
isolation-level - Rob Conery の Massive を使用する場合はコミットされていない読み取り
独自のクエリを作成せずに Rob Conery の Massive を使用しているときに、コミットされていない読み取りを行う方法はありますか?
ほとんどが読み取り専用のサイト用です。サイトの CMS タイプ。
sql - SELECT ステートメントで NOLOCK を使用する目的は何ですか?
SELECT ステートメントで NOLOCK を発行する正当な理由を誰か提案できますか?
私は、それらが散らばっているいくつかのストアド プロシージャをリファクタリングしていますが、SELECT ステートメントの NOLOCK はほとんど役に立たないことを理解しています。
sql-server - NOWAIT または SET LOCKTIMEOUT を使用するのではなく、SQL クエリをキューに入れる組み込みのメカニズムはありますか
トランザクションを実行していると同時に、別の接続で一連の SQL クエリ (SELECT) を実行したいとします。
を使用してこれを行うことができますSET LOCKTIMEOUT
が、そのためにはタイムアウト値を指定する必要があります。私の場合はさまざまなので、固定のミリ秒は使用できません。
また、 を取得したときにクエリのセットを再試行したくありませんLockTimeOut Error
。
SQL Server 2008/2012 に組み込まれている機能はありますか?
sql - select WITH (NOLOCK) とレプリケーション エージェント間のデッドロック
データベース レプリケーション エージェントと nolock ヒントを使用する select ステートメントの間でデッドロックが発生しました。select ステートメントが被害者として選ばれました。これが select ステートメントです。ご覧のとおり、FROM 句の両方のオブジェクトで nolock ヒントを使用しています。
デッドロックに関する詳細は次のとおりです。
サーバー A からサーバー B に大量のデータを移動するために SSIS パッケージを呼び出す "サーバー B" に SQL エージェント ジョブがあります。サーバー A のデータ ソースはトランザクション レプリケーションでレプリケートされます。サーバー A は SQL Server 2008 R2 SP2 を実行しており、サーバー B は SQL Server 2008 SP3 を実行しています。
SSIS パッケージのデータ フロー タスクは最大 1 GB のデータを移動する必要があり、サーバー A とサーバー B は地理的に離れているため、クエリに時間がかかる場合があります。サーバー A のレプリケーション エージェントをブロックしたくないので、データ フロー タスクで nolock ヒントを使用しました。このデータでは、データの整合性は大きな問題ではありません。
SSIS パッケージは問題なく数回実行されましたが、最後に実行されたとき、サーバー A のレプリケーション エージェントと nolock ヒントを使用する SSIS パッケージの select ステートメントとの間にデッドロックが発生し、ジョブが失敗しました。サーバー A の SQL Server エラー ログからのエラー メッセージは次のとおりです。
サーバー B の SQL エージェント ジョブ履歴からのエラー メッセージ:
sql-server - JOIN を使用した SQL Server NOLOCK、一括読み込み
以下は私が持っているシナリオです: 4 つのテーブルを結合してデータを返すストアド プロシージャがあります。1 日に 2 回、上記の 4つのテーブルのいずれかに一括アップロードが行われます。負荷は 10 ~ 15 分間続きます。このストアド プロシージャを呼び出す UI が、この 10 ~ 15 分間のウィンドウでフリーズ/ブロック/スローダウンすることは望ましくありません。上記のテーブルからダーティ/コミットされていないデータを表示することは気にしません。以下は私の質問です:
日中にロードされるテーブルだけで NOLOCK を使用する必要がありますか、それとも結合の 4 つのテーブルすべてに NOLOCK を追加する必要がありますか。例えば
またはこれで十分ですか
/li>取得手順の最初に SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED を追加し、最後に READ COMMITTED に戻すと、違いはありますか?
ありがとう
ヴィカス
sql - NOLOCK の仕組み
NOLOCK の使い方は知っていますが、NOLOCK の仕組みを教えてください。
- テーブルが書き込みロックされている場合、戻り値はロックされません (書き込みロック中)。
はいの場合、どの状態のデータを参照しますか?