この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
データベース&データベース
›
Microsoft SQL Server
›
SQLロック NOLOCK、HOLDLOCK、UPDLOCK、TABLOCK、TABLOCKX...
眺める:
8936
|
答える:
0
SQLロック NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX
[リンクをコピー]
クズども
掲載地 2016/07/20 14:02:51
|
|
|
ノーロック
このオプションを選択すると、SQL Serverはロックなしでデータを読み取ったり変更したりします。 この場合、ユーザーは「ダーティデータ」として知られる未コミットトランザクションやロールバックからデータを読み取ることができます。
ホールドロック
このオプションを選択すると、SQL Serverはトランザクション全体が終了するまでこの共有ロックを維持し、その過程でロックを解除しません。
アップドロック
このオプションを選択すると、SQL Serverはデータを読み込む際に共有ロックの代わりにモディエットロックを使用し、トランザクションやコマンドの終了までこのロックを維持します。 このオプションにより、複数のプロセスが同時にデータを読み取れるが、そのプロセスだけがデータを変更できます。
TABLOCK
このオプションを選択すると、SQL Serverはコマンドが終了するまでテーブル全体に共有ロックを適用します。 このオプションにより、他のプロセスはデータの読み取りのみを可能にし、そのデータを変更できません。
パグロック
このオプションがデフォルトであり、選択するとSQL Serverは共有ページロックを使用します。
TABLOCKX(排他的テーブルロック)
このオプションを選択すると、SQL Serverはコマンドやトランザクションが終了するまでテーブル全体にロックをかけます。 これにより、他のプロセスがテーブル内のデータを読み取ったり変更したりするのを防ぎます。
HOLDLOCKはトランザクション全体が完了するまで共有ロックを保持し、ロックされたオブジェクトが不要になった時点で、SERIALIZABLEトランザクション分離レベルに等しい状態でリリースされます
NOLOCK文は共有ロックを発行せずに実行されるため、READ UNCOMMITDトランザクション隔離レベルに等しいダーティリードが許されます
PAGLOCKは複数のページロックを使用し、1つのテーブルロックを使用します
READPASTは、ロックされた行をスキップしてトランザクションを実行させ、READの未コミットトランザクション隔離レベルでは、ページ、ゾーン、テーブルのロックはスキップせず、RIDロックのみをスキップします
ROWLOCKはrowlockの使用を強制します
TABLOCKXは排他的テーブルレベルのロックの使用を強制し、トランザクション中に他のトランザクションがテーブルを使用できないようにします
UPLOCKは共有ロックなしでテーブルを読み取る際に更新の使用を強制します
注:データベース内のテーブルをロックすることの違い
SELECT * FROM table WITH(HOLDLOCK)他のトランザクションはテーブルを読み取ることができますが、更新や削除はできません
SELECT * FROM table WITH (TABLOCKX) その他のトランザクションはテーブルの読み取り、更新、削除ができません
先の:
SQLにおけるロック、ダーティーリード、繰り返しできないリード、そして誤リード
次に:
SQL Serverはデッドロックを確認し、デッドロックを解除します
関連記事
•
SQLMAP浸透ツールのSQLインジェクションテストをご利用ください
•
(MSSQL) SQL SERVERは非常に大規模なSQLスクリプトを実行します
•
[実戦]。 NET/C# SQLクエリジェネレーター sqlkataベース
•
SQL Serverデータベースにおける一時テーブルの詳細な説明
•
SQL Server 2016にはインストール完了後の管理ツール(SSMS)がありません
•
SQL Serverのフィールドは中国語の文字、文字、数字のみを含めることができます
•
SQL Serverで一般的に使われていないSQL文のノート
•
SQL Serverでは、文字列がSQLで見つかる値とつなげられます
•
SQL Server は SQL 文をスケジューリングします
•
sqlserver-trigger-決定したフィールドはどのフィールドが更新されたかを決定します。
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com