Обработка Оператора DML

Оператор языка манипулирования данными (DML) требует только двух фаз обработки.

Обработка Оператора DML

Фазы обработки оператора DML:

  • Синтаксический разбор является той же самой фазой синтаксического разбора, которая используется для того, чтобы обработать запрос.

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

Фаза Выполнения DML

Чтобы выполнить оператор DML:

  • Если блоки данных и блоки отката уже не находятся в буферном кэше, серверный процесс читает их из файлов данных в буферный кэш

  • Серверный процесс устанавливает блокировки на строки, которые должны быть изменены

  • В буфере журнала транзакций серверный процесс записывает изменения, которые будут сделаны в блоках отката и блоках данных

  • Изменения блока отката записывают значения данных прежде, чем они будут изменены. Блок отката используется, чтобы хранить "исходный образ записи" данных, так, чтобы операторы DML могли откатываться в случае необходимости.

  • Изменения блока данных записывают новые значения данных

Серверный процесс записывает "исходный образ записи" в блок отката и обновляет блок данных.

Оба из этих изменений делаются в буферном кэше базы данных. Любые измененные блоки в буферном кэше отмечаются как грязные буферы (то есть, буферы, которые не являются тем же самым, что и соответствующие блоки на диске).

Обработка команды DELETE или INSERT использует подобные шаги. "Исходный образ записи" для DELETE содержит значения столбцов в удаленной строке, а "исходный образ записи" для INSERT содержит информацию о расположении строки.

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

Далее: Функция DECODE

Смотрите также
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)