Access 2002

Объединение результата


Он никогда не оценивает объединение результата одного объединения с результатом другого. Благодаря этому время выбора стратегии выполнения запроса значительно сокращается.

После компиляции и оптимизации запроса Jet выполняет еще два важных действия. Если в запросе участвуют данные из внешнего источника, удаленный пост-процессор определяет, какая часть запроса может быть отправлена для выполнения серверу базы данных. Желательно, чтобы сервер сам выполнил все действия, необходимые для отбора данных из его таблиц, потому что в результате меньше данных придется отправлять обратно по сети. Выделив части запроса, которые могут быть выполнены на сервере, удаленный пост-процессор генерирует для них SQL-инструкции.

Напоследок пост-процессор перемещает откомпилированное дерево запроса в новый, чистый и меньший по размерам сегмент кода. На этом подготовка запроса к выполнению заканчивается.

Выполнение запроса

После выбора оптимального плана выполнения Jet проходит по последнему варианту дерева запроса и генерирует результирующий набор записей.

Вы можете попросить Jet создать набор записей типа keyset, static или snapshot. В лервом случае Jet создает в памяти набор значений уникальных ключей, называемый keyset. Эти значения указывают на строки в таблицах, к которым был обращен запрос. Такая модель курсора исключительно эффективна, поскольку Jet достаточно прочитать из таблиц только эти значения ключей и сохранить их в памяти (а если памяти не хватит, и на диске). Значения остальных столбцов набора записей читаются только тогда, когда они нужны (например, когда пользователь начинает прокручивать таблицу на экране). Поэтому запрос на формирование набора записей типа keyset выполняется очень быстро.

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