Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Оптимизация формул реляционной алгебры
Пусть условие F = f 1∧...∧ f n Правила:
После выполнения этих трёх правил выражение Π A (σ F (R 1×...× R n)) преобразуется к виду: Π A (σ F (Π A 1(σ f 1(R 1))×...×Π A n (σ f n (R n)))), здесь каждый Π A i (σ f i (R i)) - это подзапрос. Суть в том, что сначала выполняются подзапросы, а они имеют намного меньшую размерность, чем исходная таблица, и время выполнения будет меньше, чем по исходной формуле Π A (σ F (R 1×...× R n)). Логический план Построение логического плана Порядок построения:
Оператор SELECT (без агрегирования, группирования и удаления дубликатов) может быть представлен так: Π A (σ F (R 1×...× R n)), где от R 1 до R n - это декартово произведение отношений (таблиц), указанных за ключевым словом FROM; σ F - это селекция кортежей декартова произведения в соответствии с условием, указанным за ключевым словом WHERE; Π A - это проекция селекции на множество атрибутов A, указанных за ключевым словом SELECT В чём суть такой логической оптимизации? Сначала надо выполнить декартово произведение, потом селекцию, потом проекцию - всё по порядку скобок в этом выражении. Потому что если таблица имеет большой размер, то это выражение будет выполняться очень долго. Пример: найти фамилии поставщиков, поставляющих детали с названием "винт". ρ =(S, P, SP) SELECT фамилия FROM S, P, SP WHERE P.название = 'винт' AND S.номер_поставки = SP.номер_поставки AND SP.номер_детали = P.номер_детали; Πфамилия(σ P. н="винт"∧ S. н−п= SP. н−п∧ SP. н−д= P. н−д(S × P × SP)) После преобразования и выделения подзапросов (как в описании, приведённом выше) получится выражение Π A (σ F (Π A i (σ f 2(R 1))×...×Π A n (σ f n (R n)))), которое можно представить в графическом виде - это и будет логический план выполнения запроса: Получается, подзапросы можно выполнять параллельно, а это тоже уменьшает время выполнения всего запроса.
Пример: Запрос найти значение остатков больше 1500 на счетах пользователя с кодом 3: SELECT остаток FROM R2 WHERE остаток > 1500 AND номер_счёта IN( SELECT номер_счёта FROM R1 WHERE код_пользователя = 3 ); Этот запрос преобразуется сервером в неявном виде в формулу реляционной алгебры: Πостаток(σ R 2.о>1500∧ R 1.к−п=3∧ R 1.н− c = R 2.н−с(R 1× R 2)) Теперь оптимизируем: =4Πостаток(σ R 1.н− c = R 2.н−с(σ R 2.о>1500∧ R 1.к−п=3(R 1× R 2)))=6 =Πостаток(σ R 1.н− c = R 2.н−с(σ R 1.к−п=3(R 1)× σ R 2.о>1500(R 2)=5,2 =Πостаток(σ R 1.н− c = R 2.н−с(Πостаток, R 1.н−с, R 2.н−с(σ R 1.к−п=3(R 1)× σ R 2.о>1500(R 2))=9 =Πостаток(σ R 1.н− c = R 2.н−с(Π R 1.н−с(σ R 1.к−п=3(R 1))×Π R 2.н−с,остаток(σ R 2.о>1500(R 2)))) Полученное выражение - результат оптимизации. Можно построить логический план выполнения запроса.
Лекция №10 - Логический и физический план запроса
Оптимизация SQL-запросов Логический план
|
|||||
Последнее изменение этой страницы: 2021-04-12; просмотров: 66; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.226.105 (0.004 с.) |