Access 2002

Как Jet выполняет запросы  


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

Одним из самых узких мест приложения Access обычно является выполнение запросов. Имеются в виду не только явные команды выполнения SQL-запросов, но и любые другие ситуации, когда приложение создает набор записей, — будь то открытие формы, печать отчета, выполнение сохраненного запроса или создание объекта Recordset программными средствами.

Ядро базы данных Jet включает специальную подсистему, отвечающую за интерпретацию и выполнение запросов. Для того чтобы строить свои запросы оптимальным образом, вам нужно знать, как эта подсистема работает. Jet обрабатывает запросы в четыре этапа:

1.   Определение.

2.   Компиляция.

3.   Оптимизация.

4.   Выполнение.

Определение запроса

Для определения запроса в вашем распоряжении имеются три механизма: QBE, SQL и DAO/ADO. Какой бы из них вы ни выбрали, конечным результатом станет инструкция SQL; она будет передана оптимизатору запросов Jet, который ее скомпилирует и оптимизирует.

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

Для каждой из входящих в запрос таблиц ядро базы данных Jet должно выбрать плап доступа. Ядро может получить записи таблиц одним из трех способов.

Комментарии закрыты