Распространение статистической информации
Недостаточно использовать только информацию о базовых данных, поскольку запрос обычно содержит много операций. Поэтому важно быть в состоянии распространять статистическую информацию через операции. Простейший случай такой операции - это селекция. Если имеется гистограмма на столбце A, и запрос состоит из единственной селекции на столбце A, то гистограмму можно модифицировать таким образом, чтобы она отражала действие селекции. На этом шаге такие предположения, как равномерное распределение данных внутри порции данных гистограммы, приводят к некоторой неточности. Более того, ключевым источником ошибок является невозможность учета корреляции. В приведенном примере это выражается в том, что не модифицируются распределения значений других атрибутов таблицы (кроме A), а это подвергает значительным ошибкам последующие операции. Подобно этому, если в запросе присутствует несколько предикатов, то принимается предположение об их независимости и общей селективностью условия считается произведение селективностей предикатов. Однако в некоторых системах используется селективность наиболее селективного предиката, и они могут установить наличие потенциальной корреляции [17]. При наличии гистограмм на столбцах, участвующих в предикате соединения, гистограммы могут "соединяться". Однако это порождает вопрос о выравнивании границ соответствующих порций. Наконец, если гистограммная информация недоступна, то для оценки селективности используются специально подобранные константы, как в [55].
- -