Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Сохранение точки отката транзакции





Начало транзакции

BEGIN TRAN [SACTION] [transaction_name | var_ transaction_name]

Фиксация транзакции

COMMIT [TRAN[SACTION]] [transaction_name | var_ transaction_name]

Сохранение точки отката транзакции

SAVE [ TRAN[SACTION]] [savepoint_name | var_savepoint_name ]

Откат транзакции

ROLLBACK [TRAN[SACTION]] [transaction_name | var_ transaction_name

savepoint_name | var_savepoint_name ]

 

 

Неявные транзакции

Начало транзакции

начинается автоматически при исполнении любого из перечисленных операторов

ALTER TABLE, CREATE объекта БД, DROP объекта БД,

INSERT, DELETE, UPDATE,

OPEN, FETCH,

GRANT, REVOKE,

TRUNCATE TABLE.

Фиксация транзакции

COMMIT [TRAN[SACTION]] [transaction_name | var_ transaction_name]

Откат транзакции

ROLLBACK [TRAN[SACTION]] [transaction_name | var_ transaction_name

savepoint_name | var_savepoint_name ]


 

36. Уровни изоляции транзакций.

Уровни изоляции транзакций - определяют степень зависимости транзакций друг от друга.

Это способ решения проблем одновременного доступа

Стандартом ANSI SQL-92 определены 4 уровня изоляции транзакций:

0 –й уровень READ UNCOMMITTED (незавершенное чтение)

1 –й уровень READ COMMITTED (завершенное чтение)

2 –й уровень REPEATABLE READ (несогласованные данные)

3 –й уровень SERIALIZABLE (сериализуемость)

Каждый последующий уровень изоляции соответствует требованиям всех предыдущих уровней и обеспечивает дополнительную защиту транзакций.

  Проблемы одновременного доступа
Уровни изоляции Пропавшие обновления Промежуточ-ное чтение Несогласованных данных Строки - призраки
SERIALIZABLE Х Х Х Х
REPEATABLE READ Х Х Х  
READ COMMITTED Х Х    
READ UNCOMMITTED Х      

 

 


 

37. Блокировки: определение, команды запроса.

 

Блокировки- способ обеспечение уровней изоляции транзакций

Блокировка -это временно накладываемое ограничение на доступ к объектам БД во время выполнения транзакций

 

Самый простой вариант блокировки – это блокировка объекта на все время действия транзакции.

В момент начала работы с любым объектом (если он не заблокирован другой транзакцией) он блокируется до окончания заблокировавшей его транзакции.

После окончания транзакции все заблокированные ею объекты разблокируются и становятся доступными другим транзакциям.

Если транзакция обращается к заблокированному объекту, то она остается в состоянии ожидания до момента разблокировки этого объекта, после чего она может продолжать обработку данного объекта.

Управление блокировками выполняет специальный компонент сервера – менеджер блокировок.

В функции менеджера блокировок входит установка, снятие и разрешение конфликтов блокировок.

Пользователю чаще всего не нужно предпринимать никаких действий по управлению блокировками.

Но при необходимости в запросе можно явно указать какой тип блокировки необходимо использовать в том или ином случае.

Можно также управлять временем ожидания разблокирования ресурса с помощью команды

SET LOCK_TIMEOUT <время_в_мс>


 

38. Типы блокировок.

Для реализации различных уровней изоляции транзакций используются различные типы и уровни блокировок.

Тип блокировки определяет уровень зависимости соединения от заблокированного объекта

Различают основные и специальные типы блокировок

Основные типы блокировок

Коллективные блокировки (S) (Shared)

Накладывается при выполнении операций чтения данных. Заблокированные объекты доступны другим транзакциям в режиме чтения

Монопольные блокировки (X) (eXclusive)

Накладывается при выполнении операций изменения данных. Заблокированные объекты не доступны другим транзакциям ни в режиме чтения, ни в режиме изменения.

Блокировки обновления (U) (Update)

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

Блокировка диапазона ключа

Накладывается на диапазон строк, удовлетворяющих определенному условию. Решается проблема возникновения фантомов.

Блокировка стабильности схемы (Sch-S) (Stability Lock)

Накладывается на схему объекта, если любая транзакция установила блокировку любого типа. Когда все блокировки снимаются, то автоматически снимается эта блокировка.

Блокировка изменения схемы (Sch-M) (Modification Lock)

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

 

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


 

39. Уровни блокировок.

Для реализации различных уровней изоляции транзакций используются различные типы и уровни блокировок.

Для решения проблемы потери производительности введены уровни блокировок.

Уровни блокировок реализованы на уровнях иерархии объектов БД:

1. RID – блокировка уровня строки

2. Key – блокировка уровня индекса (группа строк)

3. Page – блокировка уровня страницы

4. Extent – блокировка уровня группы страницы

5. Table – блокировка уровня таблицы

6. DB – блокировка уровня базы данных

SQL Server 2000 динамически управляет выбором уровня блокировки.


40. Специальные блокировки. Совместимость блокировок.

Специальные блокировки или блокировки намерения используются для разрешения конфликтов наложения блокировок на различных уровнях

Коллективные блокировки намерения (IS) (Intent Shared)

Накладывается при намерении транзакции читать данные вниз по иерархии объекта (например, таблица – группа страниц – страница – строка). Другим транзакциям запрещается устанавливать монопольные блокировки вниз по иерархии.

Монопольные блокировки намерения (IX) (Intent eXclusive)

Накладывается при намерении транзакции изменять данные вниз по иерархии объекта. Другим транзакциям запрещается устанавливать любые блокировки вниз по иерархии.

Коллективно - монопольная блокировка намерения (SIX) (Shared Intent with eXclusive)

Накладывается при намерении транзакции читать данные вниз по иерархии объекта и выполнять их частичное изменение, устанавливая монопольные блокировки.

Совместимость блокировок

Тип запрашиваемой блокировки Тип наложенной блокировки
IS S U IX SIX X
IS + + + + +  
S + + +      
U + +        
IX +     +    
SIX +          
X            

Если на страницу наложена коллективная блокировка, то на эту страницу нельзя наложить монопольную (X) блокировку, блокировки намерения коллективно – монопольную (SIX) и монопольную (IX).


 

41. Тупиковые блокировки.

Тупиковые блокировки - возникают когда две транзакции блокируют два блока данных и для завершения работы каждой из них необходим доступ к данным, заблокированным ранее другой транзакцией.

Для разрешения конфликта тупиковых блокировок в современных СУБД имеются специальные механизмы обнаружения и разрешения тупиковых блокировок.

Исключать использования взаимодействия с пользователем во время выполнения транзакции.

Начало транзакции

BEGIN TRAN [SACTION] [transaction_name | var_ transaction_name]

Фиксация транзакции

COMMIT [TRAN[SACTION]] [transaction_name | var_ transaction_name]

Сохранение точки отката транзакции

SAVE [ TRAN[SACTION]] [savepoint_name | var_savepoint_name ]

Откат транзакции

ROLLBACK [TRAN[SACTION]] [transaction_name | var_ transaction_name

savepoint_name | var_savepoint_name ]

 

 

Неявные транзакции

Начало транзакции

начинается автоматически при исполнении любого из перечисленных операторов

ALTER TABLE, CREATE объекта БД, DROP объекта БД,

INSERT, DELETE, UPDATE,

OPEN, FETCH,

GRANT, REVOKE,

TRUNCATE TABLE.

Фиксация транзакции

COMMIT [TRAN[SACTION]] [transaction_name | var_ transaction_name]

Откат транзакции

ROLLBACK [TRAN[SACTION]] [transaction_name | var_ transaction_name

savepoint_name | var_savepoint_name ]


 

36. Уровни изоляции транзакций.

Уровни изоляции транзакций - определяют степень зависимости транзакций друг от друга.







Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.