-1

Does Read Committed Snapshot Isolation prevent phantom row issue? Does Snapshot Isolation prevent phantom row issue?

I am seeing different results in researching online:

  1. Akira Yamamoto states: phantom rows are allowed and possible under both isolation levels.

  2. Redgate: "As with the Serializable isolation level, the Snapshot level prevents dirty reads, nonrepeatable reads and phantom reads."

  3. In answer from Erland Sommarskog, he is stating 'Snapshot Isolation On' prevents phantom rows? (correct me if I am misreading his answer)

2

From Isolation Levels in the Database:

+------------------+------------+--------------------+---------+
| Isolation level  | Dirty read | Nonrepeatable read | Phantom |
+------------------+------------+--------------------+---------+
| Read uncommitted | Yes        | Yes                | Yes     |
| Read committed   | No         | Yes                | Yes     |
| Repeatable read  | No         | No                 | Yes     |
| RCSI             | No         | Yes                | Yes     |
| Snapshot         | No         | No                 | No      |
| Serializable     | No         | No                 | No      |
+------------------+------------+--------------------+---------+

For the sake of this question, read committed snapshot should adhere to the same properties of "read committed" in the chart above.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy