Параллельная обработка транзакций, страница 5

Результат: Изменение данных внесены транзакцией A.

Граф ожидания

Граф ожидания не имеет циклов и, следовательно, график выполнения транзакций является сериализуемым (правильным).

4.2. Закройте присоединенную таблицу в СУБД Access. Создайте хранимую процедуру (см. л.р. № 2) реализующую следующую транзакцию:

CREATE PROCEDURE del_zakaz

AS

begin transaction T1

delete out_zakaz where (условие, определяющее удаление строк)

rollback transaction

select * from out_zakaz

Отладив команды, выполните процедуру (EXEC del_zakaz) закоментировав команду rollback transaction (/*rollback transaction*/).

Перейдите в СУБД Access и попытайтесь открыть присоединенную таблицу.

Перейдите в СУБД SQL Server и выполните запрос SELECT * FROM out_zakaz.

Проанализируйте наблюдаемый эффект, рассмотрев график запуска транзакций и граф ожидания.

График транзакций

Время

SQL Server QA (A)

Access (B)

SQL Server – QA (С)

t1

X-locks

Лас-Вегас ® P

t2

X-locks

t3

X-locks

S-locks

t4

X-locks

wait

t5

X-locks

S-locks

t6

X-locks

wait

t7

X-locks