ЗАПРОС ¦
--T---
¦ --------¬ --------¬ -------¬ ---------¬ ¦ -------¬
---+---+Синтак-¦ ¦Логи- ¦ ¦Выбор ¦ ¦Произве-¦ ¦Выпол-¦
¦Лекси-¦сичес- ¦ ¦ческая ¦ ¦опти- ¦ ¦дение ¦ ¦ ¦нение ¦
¦ческий¦кий +-+оптими-+-+маль- +-+выполня-¦ ¦плана ¦
¦анализ¦анализ ¦ ¦зация ¦ ¦ного ¦ ¦емого ¦ ¦ ¦ ¦
L------+ ¦ ¦ ¦ ¦плана ¦ ¦плана ¦ ¦ ¦
L---T---- L---T---- L--T---- L---T---T- ¦ L--T----
¦ ¦ ¦ ¦ ¦ ¦
¦ ----+--------+-¬ ¦ --+---+------+-¬
¦ ¦ Внутреннее ¦ ¦ ¦ Выполняемое ¦
L-----+ представление+-------- ¦ представление¦
¦ запроса ¦ ¦ запроса ¦
L--------------- L---------------
Рис.1. Этапы обработки запроса в реляционной СУБД.
¦Число сотрудников
¦
¦ 40 40
¦ **** ****
¦ **** ****
¦ 1 5 **** **** 5 5 5 1 1 1
¦ * **** **** **** **** **** * * * *
L-----T-----T-----T-----T-----T-----T-----T-----T-----T-----T
10 15 20 25 30 35 40 45 50 55 60
Возраст
Рис.2 Простая гистограмма распределения возрастов служащих.
¦
¦ Возраст 60
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ ¦
¦ 34 ¦
¦ ¦ ¦
¦ 26 27 28 28 ¦ ¦
¦ 21 22 23 25 ¦ ¦ ¦ ¦ ¦ ¦
¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦
L----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--
0 1 2 3 4 5 6 7 8 9 10
Номера интервалов
1 11 21 31 41 51 61 71 81 91 100
Позиции значений в их отсортированном списке
Рис.3 Псевдогистограмма распределения возрастов служащих.
Указатели альтернатив
--------+-------¬
¦ ¦
¦ имя STAR ¦
---T-----------T--¬
¦ ¦TableAccess¦ ¦
+--+-----------+--+
¦ EMP ¦
+-----------------+
¦ {NAME, ADDRESS} ¦
+-----------------+
¦ {SAL < 30.000, ¦
¦ AGE > 45} ¦
L------------------
Рис.4. Дерево вызовов до обработки узла TableAccess.
---T-----------T--¬ ---T-----------T--¬ ---T-----------T--¬
¦ ¦ TableScan ¦ -+--+- ¦ GET ¦ -+--+- ¦ GET ¦ ¦
¦ ¦ ¦ -+--+- ¦ ¦ -+--+- ¦ ¦ ¦
+--+-----------+--+ +--+-----------+--+ +--+-----------+--+
¦ ¦ -+------- ¦ -+-------- ¦
¦ ¦ ¦¦ ¦ ¦¦ ¦
¦ EMP ¦ ¦+-----------------+ ¦+-----------------+
¦ ¦ ¦¦ EMP ¦ ¦¦ EMP ¦
+-----------------+ ¦+-----------------+ ¦+-----------------+
¦ {NAME, ADDRESS} ¦ ¦¦ {NAME, ADDRESS} ¦ ¦¦ {NAME, ADDRESS} ¦
+-----------------+ ¦+-----------------+ ¦+-----------------+
¦ {SAL < 30.000, ¦ ¦¦ {SAL < 30.000, ¦ ¦¦ {SAL < 30.000, ¦
¦ AGE > 45} ¦ ¦¦ AGE > 45} ¦ ¦¦ AGE > 45} ¦
L------------------ ¦L------------------ ¦L------------------
---- ---
¦ ¦
---T-----------T--¬ ---T-----------T--¬
¦ ¦ TableScan ¦ ¦ ¦ ¦ TableScan ¦ ¦
+--+-----------+--+ +--+-----------+--+
¦ INDEX1 ¦ ¦ INDEX3 ¦
+-----------------+ +-----------------+
¦ {TID} ¦ ¦ {TID} ¦
+-----------------+ +-----------------+
¦ {SAL < 30.000, ¦ ¦ {SAL < 30.000, ¦
¦ AGE > 45} ¦ ¦ AGE > 45} ¦
L------------------ L------------------
Рис.5. Дерево вызовов после обработки узла TableAccess.
Q1, Q2,..., Qn Q1, Q2,..., Qn
¦ ¦
------+-----¬ ------+-----¬
¦ Локальный ¦ ¦Глобальный ¦
¦оптимизатор¦ ¦оптимизатор¦
L-----T------ L-----T------
P1, P2,..., Pn Глобальный план
¦ ¦
------+-----¬ ------+-----¬
¦ Слияние ¦ ¦Выполнение ¦
¦ планов ¦ L------------
L-----T------
Глобальный план
¦
------+-----¬
¦ Выполнение¦
L------------
Рис.6 Архитектуры систем обработки наборов запросов.
Назад | Содержание