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

       

Стоимость путей доступа для одного отношения


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

ОПТИМИЗАТОР анализирует предикаты в запросе и пути доступа, доступные для отношений запроса, и формулирует предсказание стоимости каждого плана доступа, используя следующую оценочную формулу:

COST = PAGE FETCHES + W * (RSI CALLS)

Эта стоимость является взвешенной мерой ввода-вывода (числа прочитанных страниц) и использования ЦП (числа выполненных команд). W является настаиваемым коэффициентом взвешивания между вводом-выводом и ЦП. RSI CALLS - это предсказуемое число кортежей, возвращаемых из RSS. Поскольку System R большую часть времени проводит в RSS, число вызовов RSI является хорошим приближением загрузки ЦП. Таким образом, при выборе пути с наименьшей стоимостью обработки запроса ОПТИМИЗАТОР стремится минимизировать все требуемые ресурсы.

При выполнении проверки совместимости типов и семантической корректности запроса ОПТИМИЗАТОР анализирует дерево предикатов WHERE каждого блока запроса. Считается, что дерево WHERE находится в конъюнктивной нормальной форме, и каждый конъюнкт называется булевским сомножителем (boolean factor). Важность булевских сомножителей состоит в том, что каждый кортеж, возвращаемый пользователю, должен удовлетворять каждому булевскому сомножителю. Говорят, что индекс соответствует булевскому сомножителю, если булевский сомножитель является sargable предикатом, в котором столбец является ключом индекса; например, индекс на столбце SALARY соответствует предикату 'SALARY = 20000'. Более точно, мы говорим, что предикат или набор предикатов соответствует индексному пути доступа, если предикаты являются sargable, и столбцы, указанные в предикатах, являются стартовыми подстроками набора столбцов ключа индекса.

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