Лучший параллелизм в Oracle, чем SQL Server?

Правда ли, что в базах данных Oracle может быть достигнут лучший параллелизм, чем в базах данных MS SQL Server? В частности, в сценарии OLTP, например, в системе ERP?

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

4 ответа

Решение

Из коробки Oracle будет иметь более высокую пропускную способность транзакций, но это потому, что по умолчанию используется MVCC. По умолчанию SQL Server блокирует выборки при незафиксированных обновлениях, но его также можно изменить на MVCC, так что разница в основном исчезнет. См. Уровень обязательной изоляции Read.

См. Включение уровней изоляции на основе управления версиями строк.

Если для параметра базы данных ALLOW_SNAPSHOT_ISOLATION задано значение ON, экземпляр ядра СУБД Microsoft SQL Server не создает версии строк для измененных данных, пока не завершатся все активные транзакции, которые изменили данные в базе данных. Если есть активные транзакции модификации, SQL Server устанавливает состояние параметра в PENDING_ON. После завершения всех транзакций изменения состояние опции изменяется на ON. Пользователи не могут запустить транзакцию моментального снимка в этой базе данных, пока опция не будет полностью включена. База данных проходит через состояние PENDING_OFF, когда администратор базы данных устанавливает для параметра ALLOW_SNAPSHOT_ISOLATION значение OFF.

Он / она, вероятно, имел в виду факты, которые:

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

Начиная с SQL 2005 это уже не так - вы можете включить изоляцию моментальных снимков, и ваши писатели не будут блокировать ваши читатели, как в Oracle.

Sql Server имеет блокировку строк, несколько разных уровней изоляции транзакций и журнал транзакций, который можно воспроизвести.

Может быть, он имеет в виду Access, который не имеет этих.

Или, может быть, он считает, что Oracle использует лучшие значения по умолчанию. У него может быть лучший аргумент, но с любой СУБД, если вы говорите об ERP, лучше иметь администратора баз данных, который знает достаточно о системе, чтобы правильно ее настроить.

Другие вопросы по тегам