Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
М. ГРУБЕР_SQL.doc
Скачиваний:
22
Добавлен:
18.04.2019
Размер:
1.4 Mб
Скачать

Другие способы блокировки данных

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

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

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

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

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

Резюме

Ключевые определения, с которыми вы познакомились в этой главе:

  • Синонимы, или как создавать новые имена для объектов данных.

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

  • Транзакция, или как сохранять или восстанавливать изменения в базе данных.

  • Управление Параллелизмом, или как SQL предохраняет от конфликта одной команды с другой.

Синонимы — это объекты, в том смысле, что они имеют имена и (иногда) владельцев, но естественно они не могут существовать без таблицы, чье имя они замещают. Они могут быть общими и следовательно доступными каждому кто имеет доступ к объекту, или они могут принадлежать определенному пользователю.

Области DBS или просто DBS — это подразделы базы данных, которые распределены для пользователей. Связанные таблицы, (например таблицы, которые будут часто объединяться) лучше хранить в общей для них DBS.

COMMIT и ROLLBACK — это команды, используемые для выполнения изменений в базе данных, в то время когда предыдущая команда COMMIT или команда ROLLBACK, начинают сеанс и оставляют изменения, или игнорируют их как группу.

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

Работа с sql

  • Создайте область базы данных с именем Myspace которая выделяет 15 процентов своей области для индексов, и 40 процентов на расширение строк.

  • Вы получили право SELECT в таблице Заказов продавца Diane. Введите команду так чтобы вы могли ссылаться к этой таблице как к "Orders" не используя имя "Diane" в качестве префикса.

  • Если произойдет сбой питания, что случится с всеми изменениями сделанными во время текущей транзакции?

  • Если вы не можете видеть строку из-за ее блокировки, какой это тип блокировки?

  • Если вы хотите получить общее, максимальное, и усредненое значения сумм приобретений для всех Заказов, и не хотите при этом запрещать другим пользоваться таблицей, какой уровень изоляции будет этому соответствовать?

(См. Приложение A для ответов.)

24