Введение
1. Вложенные запросы (подзапросы) в MySQL Server, T-SQL или SQL Oracle 8
1.1. Теоретические основы 8
1.1.1. Подзапрос во фразе WHERE 10
1.1.2. Подзапрос в условии сравнения групп 12
1.1.3. Подзапрос в условии проверки вхождения элемента во множество 14
1.1.4. Подзапрос в условии EXISTS 15
1.1.5. Связанные подзапросы 15
1.1.6. Связанные подзапросы во фразе WHERE 16
1.1.7. Простые и связанные подзапросы во фразе HAVING 16
1.1.8. Простые подзапросы во фразе FROM 17
1.1.9. Подзапросы во фразе SELECT 17
1.2. Обработка оптимизации вложенных запросов 19
1.2.1. Вложенные подзапросы 19
1.2.2. Простые вложенные подзапросы 19
1.2.3. Использование одной и той же таблицы во внешнем и вложенном подзапросе 21
1.2.4. Вложенный подзапрос с оператором сравнения, отличным от IN 22
1.2.5. Коррелированные вложенные подзапросы 23
1.2.6. Запросы, использующие EXISTS 24
1.2.7. Функции в подзапросе Error! Bookmark not defined.
1. 3. Выполнение вложенного запроса в однопроцессорной базе данных 26
1.3.1. Введение 26
1.3.2. Влияние параметров запроса на время выполнения вложенного запроса 27
1.3.2.1. Неупорядоченые таблицы с параметрами, соответствующими геометрической прогрессии 28
1.3.2.2. Упорядоченые таблицы с параметрами, соответствующими геометрической прогрессии 32
1.3.2.3. Неупорядоченые таблицы с параметрами, соответствующими арифметической прогрессии 35
1.3.2.4. Упорядоченые таблицы с параметрами, соответствующими арифметической прогрессии 39
1. 4. Постановка задачи 42
Выводы по главе 1 44
Глава 2. Обоснование квазиоптимального порядка распределения элементарных запросов в многопроцессорной базе данных 45
2.1. Введение 45
2.2. Распределение номеров элементарных запросов по процессорам 45
2.3. Обоснование квазиоптимального порядка распределения 47
2.3.1. Обработки запроса для неупорядоченных столбцов таблицы естественный порядок распределения. Арифметическая прогрессия 47
2.3.2. Квазиоптимальный порядок распределения. Арифметическая прогрессия 49
2.3.2.1. Время выполнения 49
2.3.2.2. Соотношения времени выполнения на i-м и -м процессорах 50
2.3.2.3. Эффективность квазиоптимального распределения 51
2.3.3. Обработки запроса для упорядоченных столбцов таблицы естественный порядок распределения. Арифметическая прогрессия 53
2.3.4. Квазиоптимальный порядок распределения. Арифметическая прогрессия 54
2.3.4.1. Время выполнения 54
2.3.4.2. Соотношения времени выполнения на i-м и -м процессорах 54
2.3.4.3. Эффективность квазиоптимального распределения 55
2.3.5. Обработки запроса для неупорядоченных столбцов таблицы естественный порядок распределения. Геометрическая прогрессия 57
2.3.6. Квазиоптимальный порядок распределения. Геометрическая прогрессия 58
2.3.6.1. Время выполнения 58
2.3.6.2. Соотношения времени выполнения на i-м и -м процессорах 59
2.3.6.3. Эффективность квазиоптимального распределения 62
2.3.7. Обработки запроса для упорядоченных столбцов таблицы естественный порядок распределения. Геометрическая прогрессия 64
2.3.8. Квазиоптимальный порядок распределения. Геометрическая прогрессия 65
2.3.8.1. Время выполнения 65
2.3.8.2. Соотношения времени выполнения на i-м и -м процессорах 65
2.3.8.3. Эффективность квазиоптимального распределения 67
Выводы по главе 2 69
3. Оптимизация числа процессоров при выполнении вложенных запросов 71
3.1. Введение 71
3.2. Квазиоптимальное распределение номеров элементарных запросов по процессорам 71
3.3. Минимизация времени обработки вложенного запроса в многопроцессорной базе данных 72
3.4. Численные результаты 73
3.4.1. Вложенные запросы для таблиц с параметрами, соответствующими геометрической прогрессии 74
3.4.1.1. Несовместное выполнение вложенных запросов 74
3.4.1.2. Совместное выполнение вложенного запроса 80
3.4.2. Вложенные запросы для таблиц с параметрами, соответствующими арифметической прогрессии88
3.4.2.1. Несовместное выполнение вложенных запросов 88
3.4.2.2. Совместное выполнение вложенного запроса 94
Выводы по главе 3 103
Литература 105


