Ответ Тома Кайта верен, оракул WRT, нет такого понятия, как «грязное чтение» из-за его архитектуры Multi-Version Concurrency Control (MVCC).
С точки зрения функциональности приложения я полностью согласен с Томом; нет веских причин или грязных чтений.
Зачем когда-либо использовать его за пределами Oracle? Там, где нет MVCC (например, MySQL, Ingres), это хитрость, чтобы обойти проблемы с блокировками, которые могут снизить производительность или привести к «разрядке» системы блокировки замков ", если не правильно настроен. Точно так же, как вам нужно настроить откат / отмену в Oracle, вам нужно управлять системой блокировки в базах данных не-MVCC.
Так почему это может быть полезно с Oracle - в качестве повышения производительности для функций только для чтения, где «неправильные данные» крайне маловероятны и крайне несущественны. В MySQL / DB2 / Ingres / Informix (не уверен насчет SQL Server / Sybase) его можно использовать для обхода средств управления блокировками для повышения производительности.
Вот пример ситуации, когда операции чтения не требуют согласованности:
Вот пример ситуации, когда чтение нужно согласованность:
Oracle просто даже не представляет грязного чтения, и при этом его нельзя «добавить в качестве функции», не теряя при этом преимущества производительности (т. Е. Для получения грязных данных в истинной архитектуре MVCC Oracle потребуется слишком много хитростей). .