問題タブ [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.

0 投票する
1 に答える
30 参照

sql-server-2008 - (NOLOCK) を使用してテーブルをコピーすると、SQL Server がストアド プロシージャに長時間かかるのはなぜですか

データベースに2つの大きなテーブルがあり、テストのためにテーブルをコピーしました(select * from online_table to backup_table with (NOLOCK) )postfix _backupを使用して同じDBにコピーしました。バックアップ テーブルで、nvarchar(50) 列の datetime 形式への変換を開始します。それらの後、主キーといくつかのインデックスを設定しました。インデックスのコピー、変換、およびセットアップを開始する前に、データベース バックアップを [簡易] に設定し、ステップの後で完全バックアップ モードに戻します。

問題は、データベースがオンライン テーブルで非常に遅いことです。2 つのテーブルを結合するストアド プロシージャは、多くの場合、完了するまでに 1 分以上かかります。通常は 1 秒以内に終了します。説明した手順の 1 時間後、ストアド プロシージャの速度に問題はなくなりました。それらは以前と同じように機能し、インデックスはすべて良好で、断片化は 1% 未満です。テーブルを nolock でコピーするため、オンライン テーブルには影響しません。誰かが問題を知っていて、おそらく解決策を持っていますか? または、この手順を実行する他の方法がありますか?

0 投票する
1 に答える
156 参照

sql - 単純な選択ですべての行が返されず、sp_who がブロックを返さない

少量の行を持つテーブルで単純な選択を実行していますが、それは永遠に実行されています。実行すると問題なく返されることがわかりました:

ただし、実行すると永久にハングします。

sp_whoまたはを実行するsp_who2と、ブロックする人は誰もいません。なぜこれが起こるのですか?どうすれば修正できますか?

0 投票する
0 に答える
119 参照

sql - クエリ レベルでの NOLOCK

SQL サーバー テーブルを実行するためのクエリがありますが、正確な数は気にしません。そこで、そのクエリに NOLOCK を指定したいと思います。ただし、クエリ自体は複数のサブクエリと複数の結合で構成されています。だから、NOLOCKをあちこちに置くのはかなり汚いです。

ただし、テーブルのトランザクション レベル「READ-UNCOMMITTED」を設定することはできますが、他のすべてのクエリでも同様に変更されます。その特定のクエリのトランザクション レベルを変更したいのですが、複数の場所でクエリに NOLOCK を指定する必要はありません。それは可能ですか?

0 投票する
1 に答える
1667 参照

mysql - Nolock の MySql READ UNCOMMITTED の使用をテストする方法

次のクエリを使用しています。

テーブルには、多数の書き込み操作と負荷の高い読み取り操作があります。読み取り操作の影響を最小限に抑えるために、非ロック読み取り操作を使用したいと考えました。MySqlでは、「READ UNCOMMITTED」で行われます(私が読んだものによると)。

このコードが実際に機能しているかどうかをテストするには?

0 投票する
0 に答える
110 参照

sql-server-2008 - rowversion 列の値はいつ更新されますか?

rowversion 列を持つテーブルがあり、次のように更新されるとします。

テーブル WITH(NOLOCK) に対してクエリを実行するとどうなりますか? クエリの結果が "Bob" (古い値) と "EFGH" (新しい行バージョン) になる可能性はありますか?

基本的に、私が求めているのは、rowversion が実際に更新されるのはいつですか? 他のすべての列が更新された後、rowversion 列が常に更新されるという保証はありますか?

0 投票する
1 に答える
2061 参照

sql-server - dapper-extensions GetList() with (nolock)

with (nolock)を使用するときにdapper に追加するように指示できるかどうかは誰にもわかりconnection.GetList<TView>()ませんか?

私はこれを CQRS モデルの R として使用していますが、うまく機能しますが、テーブルのロックアウトが始まるのではないかと心配しています。可能であれば、トランザクションをミックスに追加したくありません。

0 投票する
4 に答える
3720 参照

.net - WITH(NOLOCK) の最良の代替手段は?

私は C#.Net でセルフ プロジェクトを作成しています。3 層アプリを使用して、SQL ステートメントをトランザクション対応にしたくありません。これらのステートメントは複数のストアド プロシージャで使用されています。WITH(NOLOCK) を使用しています。トランザクション中に挿入または更新に使用されたテーブルをクエリするためのアプローチであり、C# 側では TransactionScope を使用していますが、最近、WITH(NOLOCK) を使用するとファントムにつながる可能性があるため、推奨されないことを読みました。ダーティで一貫性のないデータを読み取ったり、使用したりします。私の質問は、トランザクション中に挿入または更新されたデータを使用するために、データベース側またはビジネス コード側のどちらであるかを選択する場合、トランザクション操作の観点から最善のアプローチは何ですか?

0 投票する
1 に答える
139 参照

sql-server-2008 - SQLサーバーでテーブルレベルでロックを適用する方法

SQL Server 2008 R2 エディションを使用しており、テーブルからデータを選択する際にテーブル レベルでロックを適用したいと考えています。

NO_LOCK を適用すると DIRTY READ 問題が発生する可能性があるため、トランザクション データではなくドメイン データのみを含むテーブルに NO_LOCK を適用する必要があります。つまり、変更される頻度が非常に低いデータです。

ドメイン テーブルに LOCK を適用する方法を提案してください。

0 投票する
3 に答える
577 参照

sql-server - 私の場合、With(NoLock) ヒントは危険ですか?

これまで何度も with(nolock) ヒントを読んで使用してきましたが、特定のケースについて質問があります。

私の場合、1 つのデータベースを参照および更新するコードのセットが 1 つあります。
このコードは、シングル スレッドで実行することを意図していました。数か月前、彼らはコードを変更せずにマルチスレッド化することを決定しました。彼らが行った方法は、それぞれの異なる「コード プロセッサ」に異なる店舗グループを管理させることでした。

たとえば、プロセッサ 1 はストア 1 から 20 を処理し、プロセッサ 2 はストア 21 から 40 を処理します。

デッドロックが発生し始めるまで、すべてが順調に見えました。デッドロックは常にページ上にあります...ロックが行のみにある場合、あるプロセッサからのデータが別のプロセッサからのデータと競合することはないため、デッドロックは発生しません。その理論に基づいて、ロックする必要のないすべての選択に With(Nolock) ヒントを配置することにしました (まだ製品化されていません)。

私の同僚がこの記事を持ってきて私を怖がらせるまで、すべてがうまくいき、ダンディに見えました...それから私はそれを読みまし...

私の場合、With(Nolock) ヒントを使用する危険性はありますか?データがプロセッサ間で競合することはありませんか?

0 投票する
0 に答える
458 参照

symfony - Doctrine2 および SQL Server との関連付け (結合) で lockmode:none を実行する方法

Doctrine2 を使用してクエリに With(nolock) ヒントを追加しようとしています。FROM 句の (最初の->setLockMode(LockMode::NONE)->getSQL();) テーブルにWITH(NOLOCK) を追加しました。説明します:

期待される:

私が本当に得たもの:

考えられる解決策:

しかし、分離レベルwith(nolock)を使用するよりも行うのが同じかどうかはわかりません。READ_UNCOMMITTED

編集:で投稿されたトランザクションを開始することは、クエリのすべてのテーブルでwith(nolock)TRANSACTION_READ_UNCOMMITTED実行することと同じです。