🗊Презентация Транзакции и блокировки

Категория: Информатика
Нажмите для полного просмотра!
Транзакции и блокировки, слайд №1Транзакции и блокировки, слайд №2Транзакции и блокировки, слайд №3Транзакции и блокировки, слайд №4Транзакции и блокировки, слайд №5Транзакции и блокировки, слайд №6Транзакции и блокировки, слайд №7Транзакции и блокировки, слайд №8Транзакции и блокировки, слайд №9Транзакции и блокировки, слайд №10Транзакции и блокировки, слайд №11Транзакции и блокировки, слайд №12Транзакции и блокировки, слайд №13Транзакции и блокировки, слайд №14Транзакции и блокировки, слайд №15Транзакции и блокировки, слайд №16Транзакции и блокировки, слайд №17

Вы можете ознакомиться и скачать презентацию на тему Транзакции и блокировки. Доклад-сообщение содержит 17 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Транзакции и блокировки
Лекция №8
Описание слайда:
Транзакции и блокировки Лекция №8

Слайд 2





Определение
Транзакция представляет собой набор из одной или более команд, выполняемых как одно целое.
Транзакция является единственной единицей работы. Если транзакция выполнена успешно, все модификации данных, сделанные в течение транзакции, принимаются и становятся постоянной частью базы данных. Если в результате выполнения транзакции происходят ошибки и должна быть произведена отмена или выполнен откат, все модификации данных будут отменены.
Описание слайда:
Определение Транзакция представляет собой набор из одной или более команд, выполняемых как одно целое. Транзакция является единственной единицей работы. Если транзакция выполнена успешно, все модификации данных, сделанные в течение транзакции, принимаются и становятся постоянной частью базы данных. Если в результате выполнения транзакции происходят ошибки и должна быть произведена отмена или выполнен откат, все модификации данных будут отменены.

Слайд 3





Требования к выполнению транзакций (ACID)
Атомарность (atomicity) – Все изменения данных в одной транзакции, рассматриваются как единый минимальный блок.
Согласованность (consistency) – После того, как транзакция будет успешно завершена, данные должны удовлетворять всем ограничениям целостности, определенным в БД.
Изолированность (isolation) – Изменения данных, выполняемые различными транзакциями, должны быть независимы друг от друга. То есть изменения данных выполняемые одной транзакцией не должны зависть от изменений, выполняемых другой транзакцией.
Устойчивость или долговечность (durability) – После того, как транзакция выполнит все необходимые изменения, и ее работа будет завершена, система выполняет фиксирование транзакции (commit). После этого система не может быть возвращена в то состояние, в котором была до начала транзакции.
SQl Server автоматически гарантирует выполнение требований ACID.
Описание слайда:
Требования к выполнению транзакций (ACID) Атомарность (atomicity) – Все изменения данных в одной транзакции, рассматриваются как единый минимальный блок. Согласованность (consistency) – После того, как транзакция будет успешно завершена, данные должны удовлетворять всем ограничениям целостности, определенным в БД. Изолированность (isolation) – Изменения данных, выполняемые различными транзакциями, должны быть независимы друг от друга. То есть изменения данных выполняемые одной транзакцией не должны зависть от изменений, выполняемых другой транзакцией. Устойчивость или долговечность (durability) – После того, как транзакция выполнит все необходимые изменения, и ее работа будет завершена, система выполняет фиксирование транзакции (commit). После этого система не может быть возвращена в то состояние, в котором была до начала транзакции. SQl Server автоматически гарантирует выполнение требований ACID.

Слайд 4





Режимы транзакций в SQL Server
Автоматическое определение транзакции (по умолчанию)
Явное определение транзакции 
Неявное определение транзакции
Описание слайда:
Режимы транзакций в SQL Server Автоматическое определение транзакции (по умолчанию) Явное определение транзакции Неявное определение транзакции

Слайд 5





Автоматическое определение транзакции
При работе в этом режиме пользователь не должен указывать в явном виде начало и конец транзакции. 
SET IMPLICIT_TRANSACTION OFF
Описание слайда:
Автоматическое определение транзакции При работе в этом режиме пользователь не должен указывать в явном виде начало и конец транзакции. SET IMPLICIT_TRANSACTION OFF

Слайд 6





Явное определение транзакции
Необходимо явно указывать начало и конец транзакции.
Команды для управления транзакциями:
Begin tran – предназначена для обозначения начала транзакции.
Синтаксис
Save tran – предназначена для создания точки сохранения (save point)
Rollback Tran – откат транзакции. Данные, которые изменились в ходе транзакции восстанавливаются в начальное состояние.
Commit tran – фиксация транзакции
Описание слайда:
Явное определение транзакции Необходимо явно указывать начало и конец транзакции. Команды для управления транзакциями: Begin tran – предназначена для обозначения начала транзакции. Синтаксис Save tran – предназначена для создания точки сохранения (save point) Rollback Tran – откат транзакции. Данные, которые изменились в ходе транзакции восстанавливаются в начальное состояние. Commit tran – фиксация транзакции

Слайд 7





Пример
begin tran
insert into tmp_aa
values ('1')
save tran aaa
insert into tmp_aa
values ('2')
rollback tran aaa
select * from tmp_aa
rollback tran
select * from tmp_aa
Описание слайда:
Пример begin tran insert into tmp_aa values ('1') save tran aaa insert into tmp_aa values ('2') rollback tran aaa select * from tmp_aa rollback tran select * from tmp_aa

Слайд 8





Неявное определение транзакции 
Система автоматически начинает новую транзакцию после завершения предыдущей транзакции.
Автоматическое открытие транзакции при операциях:
Alter table
Create
Delete
Drop
Fetch
Grant
Select
Insert
Update
Revoke
Truncate table
set implicit_transactions on
Описание слайда:
Неявное определение транзакции Система автоматически начинает новую транзакцию после завершения предыдущей транзакции. Автоматическое открытие транзакции при операциях: Alter table Create Delete Drop Fetch Grant Select Insert Update Revoke Truncate table set implicit_transactions on

Слайд 9





Вложенные транзакции
Переменная @@trancount показывает текущую степень вложенности транзакции. 
Каждая инструкция BEGIN TRANSACTION увеличивает значение @@TRANCOUNT на один. 
Каждая инструкция COMMIT TRANSACTION уменьшает значение @@TRANCOUNT на один. 
Инструкции ROLLBACK TRANSACTION без имен транзакций откатывают все вложенные транзакции и уменьшают значение @@TRANCOUNT до 0.
Описание слайда:
Вложенные транзакции Переменная @@trancount показывает текущую степень вложенности транзакции. Каждая инструкция BEGIN TRANSACTION увеличивает значение @@TRANCOUNT на один. Каждая инструкция COMMIT TRANSACTION уменьшает значение @@TRANCOUNT на один. Инструкции ROLLBACK TRANSACTION без имен транзакций откатывают все вложенные транзакции и уменьшают значение @@TRANCOUNT до 0.

Слайд 10





Основы блокировок
Чтобы обеспечить выполнение требования изолированности, SQL Server использует механизм блокировок (locks).
Блокировкой называется временное ограничение, накладываемое системой на использование тех или иных ресурсов.
Описание слайда:
Основы блокировок Чтобы обеспечить выполнение требования изолированности, SQL Server использует механизм блокировок (locks). Блокировкой называется временное ограничение, накладываемое системой на использование тех или иных ресурсов.

Слайд 11





Типы блокировок
На отдельную строку таблицы (RID)
Диапазон индекса (key)
На страницы (page)
На группы страниц (extent)
На всю таблицу целиком (table)
Блокировками управляет диспетчер блокировок Lock Manager.
Описание слайда:
Типы блокировок На отдельную строку таблицы (RID) Диапазон индекса (key) На страницы (page) На группы страниц (extent) На всю таблицу целиком (table) Блокировками управляет диспетчер блокировок Lock Manager.

Слайд 12





Мертвые блокировки
Транзакция А создает общую блокировку строки 1.
Транзакция Б создает общую блокировку строки 2.
Транзакция А теперь запрашивает монопольную блокировку строки 2 и блокируется до того, как транзакция Б закончится и освободит общую блокировку строки 2.
Транзакция Б теперь запрашивает монопольную блокировку строки 1 и блокируется до того, как транзакция A закончится и освободит общую блокировку строки 1.
Описание слайда:
Мертвые блокировки Транзакция А создает общую блокировку строки 1. Транзакция Б создает общую блокировку строки 2. Транзакция А теперь запрашивает монопольную блокировку строки 2 и блокируется до того, как транзакция Б закончится и освободит общую блокировку строки 2. Транзакция Б теперь запрашивает монопольную блокировку строки 1 и блокируется до того, как транзакция A закончится и освободит общую блокировку строки 1.

Слайд 13





Механизмы блокирования
Level 0. No trashing of data (запрещение загрязнения данных). Одни и те же данные в каждый момент времени может изменять только одна транзакция. Если другая транзакция пытается изменить эти же данные, она должна дождаться завершения работы первой транзакции.
Level 1. No dirty read (запрещение грязного чтения). Когда транзакция начинает менять данные, СУБД должна блокировать ресурсы, чтобы ни одна транзакция не смогла прочитать блокированные данные.
Level 2. No nonrepeatable read (запрещение неповторяемого чтения). Когда транзакция начинает читать данные, СУБД должна блокировать ресурсы, чтобы ни одна транзакция не смогла изменить блокированные данные.
Level 3. No phantom (запрещение фантомов). Если транзакция производит выборку по какому либо логическому условию, то никакая другая транзакция не должна вставлять в таблицу или удалять из нее строки, удовлетворяющие этому условию.
Описание слайда:
Механизмы блокирования Level 0. No trashing of data (запрещение загрязнения данных). Одни и те же данные в каждый момент времени может изменять только одна транзакция. Если другая транзакция пытается изменить эти же данные, она должна дождаться завершения работы первой транзакции. Level 1. No dirty read (запрещение грязного чтения). Когда транзакция начинает менять данные, СУБД должна блокировать ресурсы, чтобы ни одна транзакция не смогла прочитать блокированные данные. Level 2. No nonrepeatable read (запрещение неповторяемого чтения). Когда транзакция начинает читать данные, СУБД должна блокировать ресурсы, чтобы ни одна транзакция не смогла изменить блокированные данные. Level 3. No phantom (запрещение фантомов). Если транзакция производит выборку по какому либо логическому условию, то никакая другая транзакция не должна вставлять в таблицу или удалять из нее строки, удовлетворяющие этому условию.

Слайд 14





Использование блокировок
Основное назначение блокировок – обеспечение нормальной работы множества пользователей с одними и теми же данными.
Два типа конкуренции:
Оптимистическая. При операциях чтения из транзакции не происходит блокирования используемых ресурсов. Нарушение требования изолированности, но повышение производительности.
Пессимистическая. Система блокирования строго следует требованиям ACID.
SQL Server работает с двумя видами конкуренции.
Описание слайда:
Использование блокировок Основное назначение блокировок – обеспечение нормальной работы множества пользователей с одними и теми же данными. Два типа конкуренции: Оптимистическая. При операциях чтения из транзакции не происходит блокирования используемых ресурсов. Нарушение требования изолированности, но повышение производительности. Пессимистическая. Система блокирования строго следует требованиям ACID. SQL Server работает с двумя видами конкуренции.

Слайд 15





Уровни изолированности транзакций
Уровни изоляции транзакций контролируют следующие параметры:
Применение и типы блокировки при чтении данных.
Время удержания блокировок чтения.
Использование операции чтения ссылок на строки, измененные другой транзакцией:
Блокировка до тех пор, пока не будет снята монопольная блокировка строки.
Извлечение зафиксированной версии строки, которая существовала в то время, когда началось выполнение инструкции или транзакции.
Считывание незафиксированного изменения данных.
Описание слайда:
Уровни изолированности транзакций Уровни изоляции транзакций контролируют следующие параметры: Применение и типы блокировки при чтении данных. Время удержания блокировок чтения. Использование операции чтения ссылок на строки, измененные другой транзакцией: Блокировка до тех пор, пока не будет снята монопольная блокировка строки. Извлечение зафиксированной версии строки, которая существовала в то время, когда началось выполнение инструкции или транзакции. Считывание незафиксированного изменения данных.

Слайд 16





Уровни изолированности транзакций
READ UNCOMMITED  - level0
READ COMMITED – level1
REPEATABLE READ – level2
SERIALIZABLE – level3
SNAPSHOT ISOLATION. Данные не блокируются. Поддерживаются версии данных.
Установка: set transaction isolation level
Описание слайда:
Уровни изолированности транзакций READ UNCOMMITED - level0 READ COMMITED – level1 REPEATABLE READ – level2 SERIALIZABLE – level3 SNAPSHOT ISOLATION. Данные не блокируются. Поддерживаются версии данных. Установка: set transaction isolation level

Слайд 17





Управление блокировками на уровне команд
Можно управлять уровнем изоляции не только на уровне соединения, но и на уровне запроса. Для этого в SQL Server используются специальные ключевые слова – хинты (hints).
Примеры:
Rowlock
Paglock
Tablock
Readuncommitted
Nolock
Описание слайда:
Управление блокировками на уровне команд Можно управлять уровнем изоляции не только на уровне соединения, но и на уровне запроса. Для этого в SQL Server используются специальные ключевые слова – хинты (hints). Примеры: Rowlock Paglock Tablock Readuncommitted Nolock



Похожие презентации
Mypresentation.ru
Загрузить презентацию