Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ
Внутренний курсор
Внутренний курсор
При чтении в потоке сервер базы данных использует указатель, чей адрес изменяется при продвижении чтения от начала к концу. Этот указатель называется курсором - не путайте с курсором набора, который создается в SQL с помощью DECLARE CURSOR. Внутренние курсоры доступны клиентам только посредством синтаксиса соединений и подзапросов.
Рис. 22.5. Внутренний курсор для соединения двух таблиц
Текущим адресом внутреннего курсора является абсолютное смещение от адреса первого потока в наборе, что означает, что он может продвигаться только вперед. Внутри оптимизатор использует индексы и организует входные потоки в план, чтобы гарантировать, что запрос начинает возвращать выходные данные в самое короткое по возможности время. Процесс оптимизации и планы детально обсуждаются в разд. "Темы оптимизации" в конце этой главы.
В любых многотабличных операциях сервер Firebird поддерживает один внутренний курсор для каждого потока. В предыдущих примерах соединений таблиц TableA и TableB каждая имеет свой курсор. Когда появляется соответствие, сервер создает объединенный образ для выходного потока, копируя потоки с текущего адреса из двух курсоров, как показано на рис. 22.5.
- Виды многотабличных запросов
- Соединения
- Подзапросы
- Запросы UNION
- Соединения
- Внутреннее соединение
- Внешние соединения
- Перекрестные соединения
- Естественные соединения
- Двусмысленность в запросах JOIN
- Алиасы таблиц
- Внутренний курсор
- Реентерабельные соединения
- Подзапросы
- Задание столбца при использовании подзапроса
- Поиск с использованием подзапроса
- Добавление данных с использованием подзапроса с соединениями
- Оператор UNION
- Наборы, совместимые для объединения
- Использование столбцов времени выполнения в объединениях
- Условия поиска и упорядочивания
- Реентерабельные запросы UNION
- UNION ALL
- Темы оптимизации: планы запросов и оптимизатор
- Курсор массива
- Хочу, чтобы курсор мигал чаще, а то я его периодически теряю из виду
- Внутренний выбор
- Курсоры
- Параметры курсора
- При суммировании – курсор внутри диапазона
- Решение проблемы курсора
- Глава XI. Организационные структуры и внутренний маркетинг
- Глава 7. Проблема курсора
- Внутренний конфликт после покупки
- "Внутренний" экспорт
- Максимальная продолжительность отображения курсора ожидания