русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Спецификации процедуры OptPlanReturn


Дата добавления: 2015-07-09; просмотров: 511; Нарушение авторских прав


 

Вход: список таблиц Q={Qi}.

Выход: вывод оптимального плана.

Алгоритм.

Поиск в массиве структур str экземпляра i, где str[i].W=Q

// Вывод шага оптимизации

Печать (Q, "=", str[i].X, " ", str[i].Y, "метод", str[i].V.k)

Если str[i].X пусто, то выйти из алгоритма

// Вывод оптимального плана для левого аргумента соединения

OptPlanReturn(str[i].X)

// Вывод метода выбора записей для правого аргумента

// соединения, которым является исходная таблица.

OptPlanReturn(str[i].Y)

Конец алгоритма.

 

Пример построения оптимального физического плана

 

Логический план

 

Построим оптимальный физический план для примера, который был рассмотрен ранее в разделе 1.3. В этом примере был построен логический план, представленный на рис. 1.24.

 

Рис. 1.24. Логический план выполнения запроса.

 

Ниже приведены исходные данные для построения физического плана:

 

1. Количество записей в исходных таблицах:

T(R1)=10000, T(R2)=100000

2. Количество записей в одном блоке таблицы:

LR1= LR2= 100, LJOIN=1000

3. Индексы по атрибутам и число записей в блоке индекса (L):

таблица R1: индекс по атрибуту "код_пользователя" (L=200),

таблица R2: индекс по атрибуту "номер_счета" (L = 200).

Примечание.Записи исходных таблиц могут читаться в отсортированном виде по своим индексированным атрибутам. Записи в таблице R1 сгруппированы по атрибуту "код_пользователя" (кластеризованный индекс), записи в таблице R2 не сгруппированы по атрибуту "остаток".

4. Мощности атрибутов в исходных таблицах:

I(R1, код_пользователя) = 5000, I(R1, номер_счета) = 10000,

I(R2, номер_счета) = 100000, I(R2, остаток) – неизвестно.

5. Предполагается, что используются левосторонние деревья для поиска оптимального плана и применяются каналы.



6. Некоторые параметры:

b = 10 – число блоков в буфере;

Ccomp = Cmove = Cfilter = 0,01 мс;

CB = 10 мс – время чтения/записи блока на диск.

Для построения оптимального плана воспользуемся алгоритмом динамического программирования (см. п. 1.7.1).

 

Алгоритм поиска оптимального физического плана

 

Ниже приведена последовательность расчётов.

 

Определение :

1.Определение метода выбора записей из исходной таблицы R1

(Пользователь):

AccessPlan(R1) (см. п. 1.7.3).

2. Определение метода выбора записей из исходной таблицы R2

(Счёт):

AccessPlan(R2) (см. п. 1.7.3).

 

Определение метода и порядка соединения :

3. Оценка соединения Q1 и Q2 методом NLJ:

в JoinPlan(Q1, Q2) (см. п. 1.7.4).

4. Оценка соединения Q1 и Q2 методом SMJ:

в JoinPlan(Q1, Q2) (см. п. 1.7.4).

5. Выбор метода соединения Q1 и Q2 и заполнение структуры:

в JoinPlan(Q1, Q2) (см. п. 1.7.4).

6. Оценка и выбор метода соединения Q2 и Q1 (по аналогии с

пунктами 3 - 4), сравнение вариантов:

JoinPlan(Q2, Q1) (см. п. 1.7.4).

 

Вывод оптимального физического плана:

7. Вывод физического плана:

OptPlanReturn({Q1, Q2}) (см. п. 1.7.5).

8. Представление физического плана в графическом виде.

 



<== предыдущая лекция | следующая лекция ==>
Формат экземпляра структуры данных | Определение метода выбора записей из исходной таблицы R1


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.244 сек.