Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Тоу Д. -> "Настройка SQL. Для профессионалов" -> 76

Настройка SQL. Для профессионалов - Тоу Д.

Тоу Д. Настройка SQL. Для профессионалов — СПб.: Питер, 2004. — 333 c.
ISBN 5-94723-959-0
Скачать (прямая ссылка): nastroykasqldlyaprof2004.djvu
Предыдущая << 1 .. 70 71 72 73 74 75 < 76 > 77 78 79 80 81 82 .. 161 >> Следующая


Коэффициенты соединения редко имеют непредсказуемое и необычное значение. Обычно можно угадать их. Детальный коэффициент соединения наибольший смысл имеет в редко встречающемся случае, когда он намного меньше 1,0 и он указывает насколько близок детальный фактор соединения к 1,0. Обычно можно угадать достаточно близко, по крайней мере, попасть в правильную окрестность.

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

¦ При настройке нескольких запросов из одного приложения повторно используйте данные о коэффициентах соединения, если обрабатываете одни и те же соединения.

¦ Коэффициенты фильтрации имеют самое главное значение, но обычно варьируются в пределах нескольких порядков, и, если разница между коэффициентами фильтрации очень большая, будет достаточно, если вы угадаете порядок их величины. Для успешной настройки с любыми коэффициентами вам практически никогда не потребуется точность большая, чем до первой отличной от нуля цифры (первой значащей цифры, если вы помните термины из математики старших классов). Например, 0,043 округляется до 0,04 с одной значащей цифрой, а 472 до 500.

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

149

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

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

Интерпретация диаграмм запросов

Перед тем как приступить к дальнейшему изучению метода, потратьте немного времени просто на то, чтобы понять содержимое диаграммы запроса. Попробуйте научиться видеть больше, чем просто странную абстрактную картинку. Имея несколько «правил большого пальца», интерпретировать диаграмму запроса достаточно просто. Возможно, вы уже знакомы с диаграммами отношений между сущностями. Существует полезное и понятное отображение диаграмм отношений между сущностями и скелетов диаграмм запросов. На рис. 5.6 показан скелет запроса для примера 5.1 и соответствующая часть диаграммы отношений между сущностями.

Employees (E)
\ ''Многие к одному Один ко многим
Departments (D)

Рис. 5.6. Скелет запроса по сравнению с диаграммой отношений между сущностями

Диаграмма отношений между сущностями отображает дизайн базы данных, который не зависит от запроса. Следовательно, скелет запроса, который олицетворяет то же отношение «много к одному» (где стрелка показывает на «одного») также исходит из дизайна базы данных, а не из запроса. Скелет запроса просто указывает, какой поднабор строения базы данных важен в данный момент, поэтому вы концентрируете внимание только на этом поднаборе, закодированном в скелете запроса. Если одна и та же таблица появляется под различными псевдонимами, диаграмма запроса в каком-то смысле расширяет диаграмму отношений между сущностями, показывая несколько соединений с одной таблицей, как если бы это были соединения с клонами этой таблицы. Это упрощает проблему настройки нескольких соединений.

При помощи коэффициентов соединения в скелете запроса вы кодируете количественные характеристики фактических данных, используя их вместо качественных характеристик «много» (many) на диаграмме отношений между сущностями. Например, для отношений «многие к одному» вы указываете количество этих «многих» детальным коэффициентом соединения; и когда встречаете отношения «многие к нулю или одному», при помощи главного коэффициента соединения указываете, как часто встречается нулевое значение. Это характеристики самих данных, а не дизайна базы данных, и они не зависят от запроса. Эти коэффициен-
150

5. Диаграммное изображение простых запросов SQL

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

ПРИМЕЧАНИЕ------------------------------------------------------------------

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

Только добавляя коэффициенты фильтрации, вы действительно учитываете данные, характерные для некоего конкретного запроса (в сочетании с информацией о распределении данных), так как условия фильтрации зависят от запроса, а не от данных. Данные лишь показывают относительные размеры всех поднаборов всех таблиц, необходимых запросу.
Предыдущая << 1 .. 70 71 72 73 74 75 < 76 > 77 78 79 80 81 82 .. 161 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100