Как вы уже знаете, уровень изоляции read committed имеет две формы. Первая форма применяется для пессимистической модели конкурентного доступа, а вторая форма - для оптимистической модели конкурентного доступа. В этом разделе рассматривается первая форма. Вторая форма read committed snapshot обсуждается в разд. «Контроль версий строк» далее В этом разделе.
Транзакция, которая читает строку и использует уровень изоляции read committed, проверяет только лишь, установлена ли исключительная блокировка на эту строку. Если такая блокировка отсутствует, транзакция загружает строку. (Это выполняется при использовании разделяемой блокировки.) Это действие не дает транзакции возможности читать неподтвержденные изменения данных, которые впоследствии могут быть отменены. После чтения значений данных эти данные могут быть изменены любой другой транзакцией.
Разделяемые блокировки, устанавливаемые на читаемые данные транзакцией этого уровня изоляции, немедленно отменяются сразу после того, как данные будут обработаны. (Обычно все блокировки отменяются после завершения транзакции.) По этой причине доступ к одновременно используемым данным улучшен, однако неповторяемое чтение и фантомные записи все еще возможны.