Оптимизация запросов в системах баз данных


         

Оставить столбец dname из тех



(r: 200000)

  • Оставить столбец dname из тех записей "departments", для которых значения столбцов cnr в "courses" и "lectures" совпадают, и значения столбцов dname из "lectures" и "departments" совпадают, и cname = 'database management' and city = 'New York'.

    (w: 1)

    итого: приблизительно 200000 обращений.

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

    Стратегия 2

  • Выполнить слияние отношений "courses" и "lectures"

    (r: 50 + 200; w: 400)

  • Отсортировать результат по dnames

    (r + w: 400*1og(2)400)

  • Выполнить слияние результата с отношением "departments"

    (r: 400 + 20; w: 400 + 400)

  • Выбрать комбинации с cname = 'database management' and city = 'New York'

    (r: 800)

  • Оставить только столбец dname.

    (w: 1)

    Итого: Приблизительно 6000 обращений.

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

    Стратегия 3

  • Выполнить слияние отношений "courses" и "lectures"

    (r: 50 + 200)

  • Оставить только dnames из комбинаций cname = 'database management'

    (w: 2)

  • Отсортировать сгенерированный список dname

    (r + w: 2)

  • Выполнить слияние результата с отношением "departments"

    (r: 2 + 20)

  • Оставить только те dnames, для которых city = 'New York'

    (w: 1)

    Итого: 277 обращений

    Таким образом, было достигнуто сокращение стоимости приблизительно в 700 раз.Для больших баз данных и более сложных запросов более совершенные методы могут привести к еще большим сокращениям.


    Содержание  Назад  Вперед