この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
データベース&データベース
›
Microsoft SQL Server
›
MSSQL (NOLOCK)のダーティリード
眺める:
11079
|
答える:
1
[出典]
MSSQL (NOLOCK)のダーティリード
[リンクをコピー]
クズども
2020年4月3日 10:06:04に投稿
|
|
|
短所:
1. 汚い読み物が生まれる
2. 選択されたクエリ文にのみ適用されます
メリット:
1. 一部のファイルでは、WITH(NOLOCK)を用いてSQLクエリ効率を33%向上させることができると記載されています。
2. 内側結合文に使われる
ダーティリード:あるユーザーがリソースに修正を加え、別のユーザーがその修正レコードを読み、最初のユーザーが修正を放棄するとデータが前の修正に戻るため、これら2つの異なる結果はダーティリードとなります。
詳細:
SQLクエリの性能を向上させるために、一般的に最初に考慮すべきはインデックスを作成することです。 実際、インデックスの確立に加えて、SQLコマンドを配置する際に構文にWITH(NOLOCK)セクションを追加することで、多数のオンラインクエリが存在する環境でデータセットがロックされる現象を改善し、クエリ性能を向上させることができます。
ただし、SQL SELECTと(NOLOCK)がダーティーリードを引き起こす可能性があることに注意が必要です。
例えば:
ログインが見えます。
単純なSELECTに加えて、JOINと組み合わせたSELECT構文も使えます。 しかし、DELETE、INSERT、UPDATE、その他のトランザクションが必要なコマンドは良くありません...
一部のファイルでは、WITH(NOLOCK)でSQLクエリ効率を33%向上させることができると書かれています。
WITH(NOLOCK)を追加すると、SQL ServerはSELECTコマンドが現在のテーブルのトランザクションロック状態を考慮しなくてよいと伝え、パフォーマンスが大幅に向上し、データベースシステムのロック現象(デッドロックを含む)を大幅に減少させます。
注意点として、WITH (NOLOCK) は現在のテーブルのトランザクションロックを考慮しないため、複数のフェーズにあるデータ(例:複数のテーブルをまたぐトランザクション>例:引き出しシステム)がある場合、WITH (NOLOCK) は現在トランザクション処理中のデータを無視します...
率直に言えば、NoLockを使うと、トランザクションがまだ完了していないにもかかわらず修正されたデータを読み取ることができます。 したがって、トランザクションデータのリアルタイムの整合性を考慮する必要がある場合は、WITH(NOLOCK)の使用を慎重に検討すべきです。
トランザクションを考慮しなくていいなら、WITH(NOLOCK)が参考になるかもしれません。
注1:WITH (< table_hint >)
テーブルスキャンを指定する、クエリオプティマイザが使用する1つ以上のインデックス、
またはクエリオプティマイザーがこのデータテーブルを活用し、この文にロックモードを使う方法もあります。
注2:WITH (NOLOCK) は READ UNCOMMITTED に相当します
先の:
データベースのマスタースレーブ遅延はクエリ解決の不正確さを引き起こします
次に:
Fiddlerがローカルlocalhost、127.0.0.1ネットワークリクエストをクロールできなかった問題を解決しました
関連記事
•
SQL Serverサーバーはデータベースの整合ルールを修正します
•
SQL SERVERデータベースはデフォルトの照合ルールを修正します
•
SQL Serverのレプリケーションは、データベースを新しいデータベースにクローンします
•
MySQLデータベースのテストテーブルは1,000万件のデータを挿入します
•
[翻訳] なぜNET/C#のMySqlConnectorとMySql.Dataが前者を勝ち取るのか
•
.NET/C# はDataTablesを通じて動的にテーブル構造を作成します
•
SQL SERVERデータベース用のメモリ最適化テーブル
•
SQL Serverがクラスタ化されていないインデックスに対して作成する最大varchar長
•
[AI](15)ベクターデータベースQdrantは使いやすいです
•
【AI】(14) オープンソースベクターデータベースの簡単な紹介
昆冰
2020年4月5日 14:21:36に投稿
|
閲覧したセクション
.Net/C#
技術チャット
リソースの共有
ごみ箱
ジャワ
ネットワーク技術
MySQL
HTML/CSS/JavaScript
フロントエンドフレーム
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com