正しい。SNAPSHOT分離を使用して、トランザクションが開始する前からコミットされた一貫性のあるデータを取得します。
READ UNCOMMITTED分離(別名NOLOCKヒント)は、dirtz、一貫性のないデータを読み取ります
SNAPSHOT分離を有効にすると、それ以降のすべてのSELECTに有効になります。ALTER DATABASE
この場合、READ_COMMITTED_SNAPSHOTで実行します
編集:追加データベース+ ALTER DATABASEの引用(私の太字)
データベースレベルでRead-Committed Snapshotオプションを有効にします。有効にすると、トランザクションがスナップショット分離を使用していない場合でも、DMLステートメントは行バージョンの生成を開始します。このオプションを有効にすると、コミットされた読み取り分離レベルを指定するトランザクションは、ロックではなく行のバージョン管理を使用します。トランザクションがコミットされた読み取り分離レベルで実行されると、すべてのステートメントは、ステートメントの開始時に存在するデータのスナップショットを参照します。
そして、スナップショット分離の使用から(私の太字)
READ_COMMITTED_SNAPSHOTデータベースオプションは、データベースでスナップショット分離が有効になっている場合のデフォルトのREAD COMMITTED分離レベルの動作を決定します。READ_COMMITTED_SNAPSHOT ONを明示的に指定しない場合、READ COMMITTEDはすべての暗黙的なトランザクションに適用されます。これは、READ_COMMITTED_SNAPSHOT OFF(デフォルト)の設定と同じ動作を生成します。READ_COMMITTED_SNAPSHOT OFFが有効な場合、データベースエンジンは共有ロックを使用してデフォルトの分離レベルを適用します。READ_COMMITTED_SNAPSHOTデータベースオプションをONに設定すると、データベースエンジンは、ロックを使用してデータを保護する代わりに、行のバージョン管理とスナップショット分離をデフォルトとして使用します。
あ、はい。
RCSIを有効にすると、読み取りで一貫性のあるデータを取得でき、ライターによってブロックされず、Read Committedを引き続き使用できます。