Классика баз данных - статьи

       

индекс на столбцах NAME, LOCATION


Например, индекс на столбцах NAME, LOCATION соответствует NAME = 'SMITH' AND LOCATION = 'SAN JOSE'. Если индекс соответствует булевскому сомножителю, то доступ с использованием этого индекса является эффективным способом удовлетворения этого булевского сомножителя. Sargable булевские сомножители могут также эффективно удовлетворяться, если представляются как аргументы поиска. Заметим, что булевский фактор может являться полным деревом предикатов, связанных через OR.

При поиске в каталоге ОПТИМИЗАТОР извлекает статистические данные об отношениях запроса и путях доступа, имеющихся для каждого отношения. Поддерживаются следующие статистические данные.

Для каждого отношения T:

  • NCARD(T) - мощность отношения T;


  • TCARD(T) - число страниц в сегменте, к котором хранятся кортежи отношения T;


  • P(T) - доля страниц данных в сегменте, хранящих кортежи отношения T.


  • P(T) = TCARD(T) / (число непустых страниц в сегменте).

    Для каждого индекса I на отношении T:

  • ICARD(I) - число различных ключей в индексе I;


  • NINDX(I) - число страниц в индексе I.


  • Эти статистические данные поддерживаются в каталогах System R и происходят из нескольких источников. Инициализация статистики производится при начальной загрузке отношений и создании индексов. Затем эти данные периодически обновляются через команду UPDATE STATISTICS, которая может выполняться любым пользователем. В System R эти статистические данные не обновляются при выполнении каждого оператора INSERT, DELETE или UPDATE, поскольку для этого потребовались бы дополнительные операции над базой данных, и системные каталоги стали бы узким местом по блокировкам. Динамическое обновление статистики могло бы привести к чисто последовательному выполнению операций, модифицирующих содержимое отношений.

    Используя эти статистические данные, ОПТИМИЗАТОР назначает каждому булевскому сомножителю из списка предикатов коэффициент селективности 'F'. Этот коэффициент селективности очень приблизительно соответствует ожидаемой доли кортежей, которые будут удовлетворять предикату.

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