Чи слід додавати читання, здійснене після встановленого рівня транзакції ІЗОЛЯЦІЇ ІЗОЛЯЦІЙНО?


9

Всередині збереженої процедури у мене є наступне: (sql сервер 2008)

 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
 BEGIN TRANSACTION getStuff
 BEGIN TRY 
    /*  some selects, updates, etc, etc. */
    ....
    COMMIT TRANSACTION getStuff
 END TRY
 BEGIN CATCH 
   ...
 END CATCH

Оскільки це засновано на транзакціях, я вважаю, що СЕРІЯЛЬНІСТЬ не впливатиме на решта підключень до бази даних.

Чи потрібно явно встановлювати рівень ізоляції, щоб читати скоєне після мого вчинення? Чи це негативно вплине на інші зв’язки між моїм сервером додатків та сервером баз даних?

Відповіді:


6

Команда є TRANSACTION ISOLATION LEVEL, ні SERVER ISOLATION LEVEL. Він змінює лише рівень ізоляції для сфери транзакції.


5

Ні, вам не доведеться неявно повертати рівень ізоляції назад, щоб прочитати скоєне.

З книг в Інтернеті .

Якщо ви видаєте ІЗОЛЯЦІЙНИЙ РІВЕНЬ ІЗОЛЯЦІЇ ТРАНЗАКЦІЇ в збереженій процедурі або тригері, коли об’єкт повертає контроль, рівень ізоляції скидається до рівня, що діє при виклику об'єкта. Наприклад, якщо встановити REPEATABLE READ у пакетній партії, а потім пакет викликає збережену процедуру, яка встановлює рівень ізоляції SERIALIZABLE, налаштування рівня ізоляції повертається до REPEATABLE READ, коли збережена процедура повертає контроль партії.


3

Команда, яку ви опублікували, просто запустить транзакцію в SP TRANSACTION ISOLATION LEVEL SERIALIZABLE. Інші з'єднання за замовчуванням мають рівень ізоляції за замовчуванням - читання здійснено (якщо явно не вказано інший рівень ізоляції).

Існує чудова серія Пола Уайта - рівні ізоляції SQL Server: Серія, яка допоможе вам глибше зрозуміти, що означають різні рівні ізоляції та робити, коли вони використовуються.


-3

Досить новий алгоритм, який дозволяє уникнути більшості недоліків попередніх підходів. Він використовує оптимістичний підхід, що дозволяє операціям протікати без блокування. Коли транзакція хоче здійснити, вона перевіряється, і вона припиняється, якщо виконання не було серійним. Більш детальну інформацію про всі програми можна знайти на веб-сайті : http://writeulearn.com/relational-database-transaction/


Здається, це не є відповіддю на питання ....
RDFozz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.