Каков лучший уровень изоляции транзакции по умолчанию для ERP, если таковые имеются?

Привет, я не имею представления об envbust, но этого можно достичь, передав параметры сонара через командную строку в сонар, см. Пример ниже:

14
задан MicSim 3 November 2009 в 13:58
поделиться

4 ответа

99 раз из 100, читайте фиксировавший, правильный ответ. Это гарантирует, чтобы Вы только видели изменения, которые фиксировались другой сессией (и, таким образом, результаты, которые последовательны, предполагая, что Вы разработали свои транзакции правильно). Но это не налагает блокировку наверху (особенно в базах данных не-Oracle), который налагает повторяемое чтение или сериализуемый.

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

Сериализуемое и повторяемое чтение иногда используется, когда у Вас есть процесс, который должен видеть непротиворечивое множество данных по всему выполнению независимо от того, что другие транзакции делают в то время. Может быть уместно установить процесс согласования конца месяца на сериализуемый, например, если существует много кода procedureal, возможность, что пользователи собираются быть изменениями внесения, в то время как процесс работает и требование, чтобы процесс гарантировал, что это всегда видит данные, поскольку это существовало в то время запущенное согласование.

18
ответ дан 1 December 2019 в 12:28
поделиться

Не забывайте о СНИМКЕ, который является правильным ниже СЕРИАЛИЗУЕМОГО.

Это зависит от того, насколько важный это для данных, чтобы быть точным в отчетах. Это действительно - вещь задачи задачей.

2
ответ дан 1 December 2019 в 12:28
поделиться

Это действительно во многом зависит от того, как Вы разрабатываете свое приложение, легкий ответ просто выполняется в READ_COMMITTED.

Можно привести аргумент что при разработке системы с ним в памяти, что Вы могли использовать READ_UNCOMMITTED в качестве по умолчанию и только увеличить уровень изоляции при необходимости в нем. Подавляющее большинство Ваших транзакций собирается успешно выполниться так или иначе, настолько считывающие незафиксированные данные не будут грандиозным предприятием.

Путем эффект уровней изоляции Ваши запросы зависит от Вашей целевой базы данных. Например, базы данных как Sybase и MSSQL должны заблокировать больше ресурсов при выполнении READ_COMMITTED, чем базы данных как Oracle.

2
ответ дан 1 December 2019 в 12:28
поделиться

Для SQL Server (и вероятно большая часть главного RDBMS), я придерживался бы значения по умолчанию. Для SQL Server это - ФИКСИРОВАВШАЯ READ. Что-либо больше и Вы начинаете перенапрягать DB, что-либо меньше, и у Вас есть проблемы непротиворечивости.

1
ответ дан 1 December 2019 в 12:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: