Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD.doc
Скачиваний:
14
Добавлен:
27.09.2019
Размер:
411.14 Кб
Скачать

17.Понятие транзакции и блокировки ресурсов.

Понятие транзакции.

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

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

Явной транзакцией управляет программист. Тогда несколько транзакций в одно и то же время работают с БД, такие транзакции называются параллельными транзакциями.

За работой транзакции следит объект сервера БД.

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

Одно из средств борьбы против несогласованности вызванных против параллельной транзакции называется блокировка ресурсов. Блокировки могут налагаться автоматически либо по требованию СУБД либо по запросу пользователя. Некоторые блокировки предусматривают блокир. На уровне строк, другие на уровне страницы, на уровне таблицы, четвертые на уровне всей БД. Размер блокируемого называется глубиной детализации.

18.Физическая организация серверов InterBase/FireBird.

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

Каждая стартующая работа с последней версией записи изменения для которой подтверждены. При удалении записи она не удаляется физически с диска и помещается на удаление до тех пор пока на завершена хотя бы одна активная транзакция использующая эту запись. Сервер располагает на одной странице БД версия одной записи таблицы. После удаления записи со страницы образуется пустоты.

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

На ОТДЕЛЬНЫХ СЛУЖЕБНЫХ СТРАНИЦАХ ХРАНЯТСЯ СЕЙФ СВОБОДНЫХ СТРАНИЦ. При выдел. Страниц берется первая страница в списке свободных, если свободной страницы нет, то добавляется новая в конец БД, только в этом случае размер БД возрастает.

Многоверсионная страница записи и неоптимальное выделение страниц ведет к высокой фрагментации данных и как следствие замедление работности поэтому необходимо проводить дефрагментацию данных. Дефрагментирование БД характериз. Расположением записей БД на непрерывных страницах и отсутствие мусора.

Способы проведения дефрагментации:

1.СОХРАНЕНИЯ БД НА ДИСКОВОМ НОСИТЕЛЕ И ПОСЛЕДУЮЩЕЕ ЕЕ ВОССТАНОВЛЕНИЕ И СДЕЛАННЫЕ РЕЗЕРВНЫЕ КОПИИ

2.АВТОМАТИЧЕСКИЙ СБОР МУСОРА, интер. Сборки измеряется в транзакции.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]