質問

Oracle DBでは、フラグを設定できることを知っています。特定のDBで実行されているすべての選択クエリをまるで実行できるかのように実行できます。 NOLOCK ヒントが追加されました。 SQL Serverに似たようなものはありますか?

役に立ちましたか?

解決

データベースをに設定できます read_only モードは確かにトランザクションルールの一部を変更しますが、グローバルなノロックに近いものはないと思います。

編集

削除、挿入、更新を実行できるようにしたいが、読者にロックされたり、ヒントや分離レベルを指定したりする必要がない場合は、オンにすることも検討することができます read_committed_snapshot, 、しかし、そこにあるセマンティクスは、再びノロックのヒントとまったく同じではありません。

他のヒント

databaseごとのレベルではありません。ヒントでのみ行うことができます set transaction isolation level. 。データベースを読み取り専用モードに設定できます。これは、デフォルトでその効果があるかもしれませんが、(名前が示唆するように)データベースに書き込むことができます。

これは、定期的に更新されているデータベースに役立つ場合があります。データベースを読み取り専用に設定し、更新のために書き込みできるように設定してから、読み取り専用に戻ります。

データベース全体ではなく、クエリごとに行うごとに:

SELECT a, b
FROM t1
WITH (NOLOCK)
WHERE t1.c = @value

また

SELECT a, b
JOIN t1
ON t1.id = t2.id
WITH (NOLOCK)
FROM t2
WHERE t2.c = @value

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top