Отбросив перечисленные детали, можно упростить рис. 1.1 до рис.1.3.
1.5 Программы построения плана выполнения запроса
В различных СУБД имеются собственные средства для построения плана выполнения запроса.
План выполнения запроса для MS SQL Server проще всего просмотреть из SQL Server Management Studio [2]/
Для того чтобы получить информацию об ожидаемом плане выполнения запроса, можно в меню Query (Запрос) выбрать команду Display Estimated Execution Plan (Отобразить ожидаемый план выполнения). Если нужно узнать реальный план выполнения запроса, можно перед его выполнением установить в том же меню параметр Include Actual Execution Plan (Включить реальный план выполнения). В этом случае после выполнения запроса в окне результатов в SQL Server Management Studio появится еще одна вкладка Execution Plan (План выполнения), на которой будет представлен реальный план выполнения запроса. При наведении указателя мыши на любой из этапов можно получить о нем дополнительную информацию (рис. 1.4).
Еще одно интерактивное графическое средство, которое позволяет администратору базы данных или разработчику писать запросы, выполнять различные запросы одновременно, просматривать результаты, анализировать план запроса и получать поддержку для улучшения плана выполнения – SQL Query Analyzer. Опция просмотра плана выполнения графически показывает методы получения данных, используемые оптимизатором запроса Microsoft SQL Server. В графическом исполнении плана используются иконки для представления специфичных действий и запросов в SQL Server, а не изображения в виде таблиц, созданных инструкциями SET SNOWPLAN_ALL или SET SNOWPLAN_TEXT. Это очень полезно для понимания скоростных показателей запроса. Кроме того, SQL Query Analyzer показывает советы по дополнительным индексам и статистическим данным в неиндексируемых колонках, что улучшит возможности оптимизатора запроса рационально обработать запрос. В частности, SQL Query Analyzer показывает какие статистические данные пропущены, тем самым, заставляя оптимизатор запроса давать оценку по селективности, а затем дает возможность создать пропущенные статистические данные.
Иконки, изображенные в графическом плане исполнения, представляют физические операторы, которые используются MS SQL Server для выполнения запроса.
Пример
Запрос
SELECT DISTINCT t.date AS c0,
c.prefijoext AS c1,
c.numeroext AS c2,
c.checkbook AS c3
FROM Transac t (nolock)
JOIN cmpasociados c (nolock)
ON t.nrotrans = c.nrotrans
JOIN tiposcmp you (nolock)
ON c.codcmp = you.codcmp
JOIN checkbooks so (nolock)
ON c.checkbook = so.checkbook
AND t.codemp = so.codemp
WHERE T.Nrotranselim is null
AND
(
CASE
WHEN T.Codcmp
IN (
' CA', ' CC', ' CB', ' CE'
,' LR', ' LO', ' LP', ' CZ'
,' VA', ' VB', ' VC', ' YOU'
,' VZ'
)
THEN T.Nrotransaut
WHEN T.Codcmp
IN (' I', ' E', ' RD')
THEN T.Nrotransctrl
ELSE T.Nrotrans END
)
IS NOT NULL
AND (t.CodEmp IS NULL OR t.codemp = 1)
AND c.checkbook = 25
AND t.codsuc = 1
ORDER BY C2 DESC
имел следующий план исполнения в Query Analyzer (см. рис.1.5).
После применения индексов, получился план исполнения, показанный на рис.1.6.
Для любой информационной системы с ростом объема данных может оказаться актуальной задача повышения производительности системы. При этом администратор базы данных должен анализировать выполнение критических запросов. Основным средством настройки запроса является изучение его плана исполнения с последующей корректировкой запроса или структуры БД. Для эффективного выполнения анализа запросов администратор БД должен хорошо понимать, из каких операций состоит запрос. Основными операциями являются операции реляционной алгебры.
В настоящее время отсутствуют обучающие программы работе с реляционной алгеброй.
Следовательно, существует необходимость разработки программы, которая даст возможность получить навыки формирования процедурного плана выполнения запроса. Для этого необходимо решить следующие задачи:
· изучить особенности работы всех реляционных операций;
· разработать структуру данных для хранения необходимой информации;
· разработать алгоритмы преобразования последовательности реляционных операций в запрос к СУБД для представления результата выполнения процедурного плана;
· разработать удобный интерфейс для формирования процедурного плана запроса;
· разработать обучающий и контролирующий компоненты программы.
2 Техническое задание на разработку обучающей программы построению запросов с использованием реляционных операций
Обучающая программа работе с реляционными операциями предназначена для формирования навыков построения плана выполнения запроса в процедурном виде, то есть в виде последовательности реляционных операций. В основе программы находится БД, позволяющая администратору программы формировать список вопросов для выполнения обучаемыми с контролем правильности введенных результатов.
Основанием для разработки программы «Обучающая программа построению запросов в процедурном виде» является задание на дипломное проектирование.
Назначением данной программы является обучение и контроль знаний в области применения реляционной алгебры для построения последовательности реляционных операций.
Программа «Обучающая программа построению запросов в процедурном виде» должна обеспечивать автоматизацию следующих функций:
1) формирование вопросов для обучаемых;
а) соединение с внутренней БД программы;
б) подключение БД, к которой формируются учебные запросы;
в) запись текста запроса;
г) доступ к метаданным учебной БД;
д) подключение схемы данных учебной БД в виде графического файла;
е) формирование множества операций ответа на запрос;
ж) формирование различных верных последовательностей операций;
2) прием ответа от обучаемого;
а) возможность выбора операции из заданного множества;
б) формирование списка таблиц учебной БД;
в) динамическое подключение к списку таблиц имен таблиц, которые являются результатом предыдущих операций;
г) определение списка столбцов заданной таблицы;
д) подключение операндов выбранной операции;
е) изменение последовательности введенных операций;
ж) сравнение введенного ответа с эталонным множеством последовательностей операций;
з) формирование сообщений о неправильных действиях пользователя;
3) обучающая часть;
а) возможность просмотра результата промежуточной операции запроса;
б) возможность просмотра результата запроса;
в) просмотр правильного ответа;
4) контролирующая часть;
а) формирование вопросника из имеющихся во внутренней БД запросов;
б) выставление баллов за ответ;
в) формирование итоговой оценки;
г) сохранение результатов теста;
д) сохранение введенных ответов.
5) работа с отчетами;
а) формирование сообщений о результатах теста;
б) печать списка вопросов и списка ответов.
Программа должна обеспечивать возможность ввода, хранения, обработки и вывода полученной в результате работы программы информации, а также получение отчетов, фиксирующих на бумаге или в файле результаты работы программы.
Входными данными должны быть:
информация для соединения с учебной БД;
структура таблиц учебной БД;
соединение с внутренней БД.
Ввод данных должен производиться во время работы программы с клавиатуры и контролироваться благодаря отображению на дисплее.
Выходными данными являются:
а) множество вопросов в виде текста запроса к учебной БД;
б) множество последовательностей операций для реализации запросов;
в) последовательности операций для реализации запросов к учебной БД, введенные пользователем;
7) оценки за введенные ответы при использовании программы в контролирующем режиме.
Выходные данные должны распечатываться на принтере, храниться в виде файла и/или записей БД программы и отображаться на экране монитора.
Надежность и устойчивость функционирования программы должны обеспечиваться:
- продуманной технологией обработки информации;
- контролем правильности ввода входной информации;
- системой диагностических сообщений;
- минимизацией операций, осуществляемых пользователем;
- соблюдением требований эксплуатационной документации.
При функционировании программы «Обучающая программа построению запросов в процедурном виде» должно обеспечиваться:
- решение задачи за приемлемое время;
- вывод результатов работы программы в виде выходных отчетов на принтере и отображения их на экране монитора.
Сохранность программ должна обеспечиваться наличием дубликатов программы и хранением программного обеспечения на внешних носителях.
Программа «Обучающая программа построению запросов в процедурном виде» требует для своего функционирования компьютер типа IBM PC под управлением операционной системы Windows 2000 и выше.
Минимальный состав технических средств:
- процессор с оперативным запоминающим устройством емкостью не менее 512 Мб;
- накопитель на магнитных дисках типа «винчестер» емкостью не менее 30 Гб;
- CD-ROM для чтения информации с компакт-диска;
- монитор;
- принтер.
Программа «Обучающая программа построению запросов в процедурном виде» реализована в виде исполняемого файла и множества БД (внутренняя и учебные).