Какой режим изоляции вы должны выбрать, если хотите наименьший параллелизм? - PullRequest
0 голосов
/ 15 июня 2009

Если вам необходимо максимально сократить параллелизм, какой уровень изоляции (повторяющееся чтение, сериализуемое чтение, зафиксированное чтение, чтение отменено) будет лучше всего работать?

Ответы [ 2 ]

1 голос
/ 15 июня 2009

Сериализуемый дает большую изоляцию, следовательно, наименьший параллелизм

http://en.wikipedia.org/wiki/Isolation_(database_systems)

0 голосов
/ 15 июня 2009

Я предполагаю, что вы действительно хотите максимизировать параллелизма, насколько это возможно, для увеличения производительности. К сожалению, простой выбор режима изоляции не поможет. Реальный вопрос об этих режимах изоляции заключается в том, можете ли вы использовать их в вашем конкретном приложении?

Это действительно зависит от интимных деталей вашего приложения, и это, вероятно, не то, что мы можем отладить в Stack Overflow.

Однако, в общем случае, если вы не получаете повреждение данных, от наиболее одновременного до минимального, уровни изоляции для Oracle:

  1. читать незафиксировано
  2. прочитано совершено
  3. повторяемое чтение
  4. сериализации.

Он отличается, скажем, для PostgreSQL, потому что он использует другую модель синхронизации ( MVCC ), где чтение бесплатное, но при записи вы рискуете откатиться.

Я полагаю, что реальный ответ на этот вопрос заключается в том, чтобы спросить и получить сведения о многодневных учебных материалах или просто нанять кого-нибудь для решения вашей конкретной ситуации. Несмотря на то, что он очень технический, нет жестких и быстрых правил: вам нужно понять и теорию, лежащую в основе происходящего, и конкретную ситуацию, чтобы дать полезную рекомендацию.

...