Переключение в режим READ COMMITTED SNAPSHOT ISOLATION базы данных под управлением MS SQL
Предлагаю рассмотреть возможность переключения базы данных MS SQL в режим READ COMMITTED SNAPSHOT ISOLATION и поставлять ее в составе дистрибутивов в этом режиме:
Это повысит отклик системы при использовании транзакций. Например, выборка всех сущностей типа "Контакт" или запрос общего количества "Контактов" в стандартном режиме READ COMMITTED не будет блокироваться, если в другой сессии в базу данных будет параллельно вставлен "Контакт" в транзакции, которая еще не успела завершиться. Запрос увидит данные в том состоянии, в котором они были до запуска этой транзакции.
Причем, база данных под управление PostgreSQL, уже функционирует в таком режиме (выборка не блокируется, и данные отображаются в том состоянии, в котором они были до запуска в параллельной сессии еще незавершившейся транзакции).
Поэтому, скорее всего переключение будет безболезненным.
Понравилась ли вам эта идея?
Спасибо, Михаил, зафиксировал идею. Поскольку эти свойства может поменять любой, разворачивающий систему локально, это можно воспринимать и как совет. Но предварительно стоит проверить, всё ли будет в порядке с быстродействием и стабильностью при такой настройке. Как минимум, понадобится большее количество памяти на SQL-сервере.