Есть ли проблемы с использованием изоляции SNAPSHOT для постоянного чтения данных для просмотра без блокировки, блокировки или грязных/фантомных чтений, в то время как отдельный процесс обрабатывает непрерывные входящие данные в сериализуемых транзакциях?Последствия использования изоляции Serializable и Snapshot одновременно
Нам нужны считыватели (гарантированные только для чтения: синхронизация веб-данных, просмотр в режиме реального времени и т. Д.), Чтобы иметь возможность считывать согласованные данные без блокировки или блокировки обновлений. Мы использовали SNAPSHOT для всего, но имели слишком много сбоев согласования, поэтому переключили процесс обновления на SERIALIZABLE.
Я читал, но не совсем ясно, что касается одновременного использования разных уровней изоляции. Я видел lock compatibility matrix и читал различную информацию. Кажется, все в порядке, но я бы очень признателен за мудрое руководство от людей с практическим опытом о любых серьезных подводных камнях.
Существуют ли какие-либо проблемы, связанные с изоляцией моментальных снимков для читателей, в то время как транзакции SERIALIZABLE записываются? Есть ли обстоятельства, что он заблокирует транзакцию SERIALIZABLE? Есть ли преимущество использования SNAPSHOT против READ COMMITTED (с READ_COMMITTED_SNAPSHOT ON)?
Спасибо, любая помощь очень ценится :-)
Спасибо! Есть ли когда-либо обстоятельство, когда чтение при изоляции SNAPSHOT может привести к блокировке транзакции SERIALIZABLE? (сначала я подумал о том, чтобы использовать подсказку NOLOCK, но прочитал комментарий о том, что есть риски, так что SNAPSHOT будет лучше) – mos 2010-12-05 05:17:27