Главная » Просмотр файлов » Введение в системы БД

Введение в системы БД (542480), страница 164

Файл №542480 Введение в системы БД (Введение в системы БД) 164 страницаВведение в системы БД (542480) страница 1642015-08-16СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 164)

Это означает, что если на вычисление исходного варианта реализации запроса потребуется 3 часа, то оптимизированная версия этого же запроса будет выполнена за одну секунду. К тому же, безусловно, возможны и многие другие улучшения. Несмотря на то что приведенный выше пример достаточно прост, он весьма наглядно демонстрирует необхолимость использования оптимизации. Кроме того, он демонстрирует вероятные типы улучшений, которые могут применяться на практике. В следующем разделе используется более систематический подход к решению проблемы оптимизации.

В частности, в нем показано, как общая проблема может быть разделена на последовательность из нескольких более или менее независимых подзадач. Это позволит нам перейти к рассмотрению отдельных стратегий и приемов оптимизации, обсуждаемых в последующих разделах. 17.3. Оптимизация запросов Рассмотрим четыре стадии процесса оптимизации запросов, который схематически представлен на рис. 17.1. 1.

Преобразование запроса во внутреннюю форму. 2. Преобразование запроса в каноническую форму. 3. Выбор потенциальных низкоуровневых процелур. 4. Генерация различных вариантов планов вычисления запроса и выбор плана с минимальными затратами. Перейдем к подробному рассмотрению каждой стадии процесса оптимизации. б42 Часть г'. Дополнипзельные аспекты Сканирование, обработка представлений, трансляция Выражение реляционной алгебры Преобразование выражения, оценка стоимости выполнения и т.д. Оптимизированный код Выполнение Результат )тис, ! 7.

!. Общая схеиа процесса оптимизации зал!роса Стадия 1. Преобразование запроса во внутреннюю форму На этой стадии выполняется преобразование запроса в некоторое внутреннее представление, более удобное для машинных манипуляций. В результате из рассмотрения полностью исключаются конструкции сугубо внешнего уровня (например, разнообразные варианты конкретного синтаксиса используемого языка запросов) и готовится почва для последующих стадий оптимизации, Затгечоиие. Обработка представлений (т.е.

процесс замены ссылок на прелставления выражениями, определяющими соответствующие представления) также выполняется на этом этапе. Возникает очевидный вопрос: "Какое формальное представление должно использоваться для внутреннего представления запросаТ'.

Независимо от того, какой именно вариант формального представления будет выбран, он должен быть лостаточно полным, чтобы допускать представление любых запросов, которые могут быть определены на внешнем языке системы. Кроме того, выбранный способ формального представления должен быть нейтральным, насколько это возможно, в том смысле, что он не должен заранее предопределять последующих оптимизационных решений. Чаше всего для внутреннего представления запросов используется та или иная модификация абстрактного синтаксического дерева, которое в этом случае называется деревом запроса. Например, на рис. 17.2 показано дерево лля запроса, рассматривавшегося выше в этой же главе (" Определить имена поставщиков детали с номером 'Р2"'). б43 Глава 17.

Оппгилгизауил Рис, ! 7.2. Дерево реализации запроса "Определить имена настави(иков детали с номером 'Р2'" Однако для наших целей удобнее всего будет предположить, что для внутреннего представления запросов используется один из тех формальных методов, с которыми мы уже знакомы: реляционная алгебра или реляционное исчисление. В этом случае дерево запроса, подобное представленному на рис. 17.2, можно будет рассматривать просто как альтернативный схематический вариант представления некоторого выражения, записанного в нотации одного из двух предложенных выше формальных методов (реляционная алгебра или реляционное исчисление).

Предположим, что выбранный формальный метод — реляционная алгебра. С этого момента будем считать, что внутренним представлением дерева запроса, показанного на рис. 17.2, является следующее алгебраическое выражение, ( ( БР Ю01Н Б ) ННЕНЕ Р3 и Р(( ( 'Р2' ) ) ( БНАНЕ ) Стадия 2. Преобразование запроса в каноническую форму На этой стадии оптимизатор выполняет несколько операций оптимизации, которые "гарантированно являются хорошими" независимо от реальных значений данных и сушествующих путей доступа к ним. Суть в том, что обычно реляционные языки позволяют сформулировать любые запросы (за исключением разве что простейших) несколькими разными (по крайней мере, внешне) способами. Например, даже простой запрос "Определить имена поставщиков детали с номером 'Р2'" на языке ЯО(, может быть записан буквально десятками способов', не считая таких тривиальных вариантов, как за- мена А = В на В = А или р АНВ и на ц АНР р.

Производительность вычисления запроса не должна зависеть от формы записи запроса, которую выбрал пользователь. Поэтому следующий этап в обработке запроса — преобразование его внутреннего представления в некоторую эквивалентную каноническую форму (см. ниже). Назначением данного преобразования является исключение внешних различий в эквивалентных представлениях запроса и, что более важно, поиск представления запроса, в некотором смысле более эффективного по сравнению с исходным представлением. > Следует заметить, что язык 5ОА исключительно предрасположен к этол~у (ель упр. 7.!2 в главе 7, и также (Д(8)).

Другие языки (ниприлэер, языки реляционной алгебры или исчисления) обычно не позволяют создать такое же количество эквивалентных по результат> выражений. Эта излишняя "гибкость" языка 5ОЛ на салом деле усложняет жизнь разработчикам (а не пользователям), поскольку суичесювенно усложняет алгоритм оптимизатора.

б44 Часть >'. Дополнительные аспекты Замечание о канонической форме, Понятие канонической форны является центральным во многих разделах математики и связанных с ней дисциплинах. Каноническая форма может быть определена следующим образом. Пусть Π— множество объектов (запросов), и пусть существует понятие об их эквивалентности (а именно: запросы о1 и г)2 эквивалентны тогда и только тогда, когда дают идентичные результаты). Тогда подмножество С множества О является подмножеством канонических форм для запросов из множества 9 в смысле определенной выше эквивалентности тогда и только тогда, когда каждому объекту и из множества !) соответствует только один объект с из множества С. В этом случае говорят, что объект с является канонической формой объекта о.

Все "интересуюшие" свойства, которыми обладает объект о, также присуши объекту с. Поэтому, чтобы доказать различные "интересуюшие" результаты, достаточно изучить менее мощное множество объектов С, а не более мощное множество 9. Вернемся к основной теме обсуждения. Чтобы преобразовать результаты выполнения стадии 1 в некоторую эквивалентную, но более эффективную форму, оптимизатор использует определенные и хорошо известные правила преобразования, или законы. Ниже приведен пример такого правила.

Здесь выражение ( А Ю01Н В ) ННЕЕЕ <выборка из> А может быть преобразовано в эквивалентное, но более эффективное выражение ( А ИНЕЕЕ <выборка яз> А ) 101Н В Подобное преобразование кратко рассматривалось в разделе 6.6. Кроме того, оно было приведено несколько выше, при обсуждении примера в разделе 17.2, который ясно продемонстрировал, зачем нужны подобные преобразования. Многие другие правила преобразования описываются ниже, в разделе 17.4. Стадия 3.

Выбор потенциальных низкоуровневых процедур После преобразования внутренней формы запроса в более подходящую (каноническую) форму оптимизатор должен решить, как следует выполнять запрос, представленный в этой канонической форме. На данной стадии принимаются во внимание наличие индексов и других путей доступа, статистическое распределение существующих значений данных, физическая кластеризация хранимых данных и т.п. Обратите внимание, что на стадиях 1 и 2 этим аспектам совсем не уделялось внимания. Основная стратегия состоит в том, чтобы рассматривать выражение запроса как серию низкоуровневых операций (соедннения, выборки и т.п.), которые в определенной степени зависят одна от другой. Ниже приведен пример такой зависимости.

При программной реализации выполнения проекции обычно требуется, чтобы считываемые кортежи следовали в определенном порядке; это позволит исключить дублируюшиеся результирующие кортежи. В свою очередь, это означает, что выполняемая непосредственно перед проекцией операция должна выдавать выходные кортежи именно в такой, требуемой последовательности.

Характеристики

Тип файла
DJVU-файл
Размер
10,05 Mb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6447
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее