Интернет магазин китайских планшетных компьютеров



Компьютеры - Оптимизация запросов СУБД - Статистика

23 января 2011


Оглавление:
1. Оптимизация запросов СУБД
2. Стратегии оптимизации
3. Оценка альтернативных способов выполнения
4. Оценка числа извлекаемых строк
5. Оптимизация параллельных сортировок
6. Статистика



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

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

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

  1. Определить, в какие интервалы гистограммы попадает ограничение;
  2. Найти оценки числа строк Ri для каждого интервала i в процентах.
  3. Если попадает в некоторый интервал частично или полностью лежит в интервале, то:
    1. Найти пересечение и
    2. Откорректировать число значений в частичном интервале /, либо Ri * /, либо Ri * /);
  4. Иначе оценка для интервала равна Ri;
  5. Просуммировать оценки в процентах для всех интервалов;
  6. Перевести оценку в процентах в число строк.

Как правило, СУБД не знает и не может знать точное число строк в таблице FROM TABLE выполняется сканирование первичного индекса), поскольку в базе могут храниться одновременно несколько образов одной и той же таблицы с различным числом строк. Для оценки числа строк используются следующие данные:

  1. Число страниц в таблице
  2. Длина страницы
  3. Средняя длина строки в таблице
Статистика для колонки таблицы нарастающим итогом.

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

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

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



Просмотров: 4933


<<< Операция соединения (СУБД)
План выполнения запроса >>>