Классика баз данных - статьи

       

Ориентированность на множества языка запросов


Ориентированность на множества языка запросов позволяет запрашивать данные обо всех программистах, работающих в отделе 50, или данные обо всех заказах, стоимость которых превышает $5,000, или данные о всех заказчиках из Сан-Хосе, у которых имеются заказы со стоимостью более $5,000, и т.д. Информация в реляционных таблицах может по-разному комбинироваться на основе только значений.

Каким образом, получив такой ориентированный на множества очень высокоуровневый запрос, можно превратить его в точный рецепт навигации по диску и взятия информации из записей разных таблиц? Этот процесс называется оптимизацией запросов: идея состоит в отображении высокоуровневого запроса к базе данных на языке SQL в низкоуровневое предписание, или последовательность действий, которые нужно предпринять для получения данных.

Оптимизаторы запросов представляют собой технологию, позволяющую добиться работоспособности этого высокоуровневого языка программирования – языка доступа к базам данных. Без этого приходилось бы пользоваться грубой силой: выбирать каждую строку каждой таблицы и проверять, соответствует ли она описанию искомых данных. Действительно ли у данного отдела номер 50? Действительно ли стоимость данного заказа превышает $5,000? Было бы очень неэффективно просматривать каждый раз все данные.

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

Чем более глубоко моделируется стоимость доступа к данным, тем более правильным оказывается выбор пути доступа.

Содержание  Назад  Вперед