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

       

В противном случае чтение этих


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

Например, в DB2 для MVS имеется возможность сначала отсортировать RID’ы, упорядочивая RID’ы в (физическом) порядке страниц, что улучшает действующую кластеризацию некластеризованных индексов и, таким образом, минимизирует число выборок данной страницы. В DB2/* с использованием Starburst также будет поддерживаться эта стратегия.

Когда в разделе WHERE содержится более одного предиката или комбинации предикатов, которые могут использоваться как старт/стопные ключи на индексе, оптимизаторы DB2 принимают во внимание возможность множественного сканирования одного и того же индекса или даже сканирования нескольких индексов для одной и той же таблицы. Например, если предикат имеет вид ZIPCODE BETWEEN 90100 AND 90199 OR ZIPCODE BETWEEN 91234 AND 91247,

и имеется индекс на столбце ZIPCODE, в DB2 будет рассматриваться план, в котором к этому индексу доступ производится дважды: один раз со старт/стопными ключами (90100,90199) и другой – с (91234,91247). Затем списки кортежей будут объединены с удалением дубликатов. Иногда это называют «index Oring».

В DB2/* на основе Starburst эта обработка списков RID будет расширена включением пересечения («ANDing») списков RID’ов, что позволит избежать чтения страниц данных при наличии индексов на всех используемых в запросе столбцах. Например, для запроса SELECT C1, C2 FROM T WHERE C1 = 10 AND C2 = 47

будут сохранены RID’ы от сканирования индекса по C1 со стартовым ключом 10 и стоповым ключом 10, и пересечены с RID’ами от другого индексного сканирования по C2 со стартовым и стоповым ключом 47. Поскольку все столбцы, на которые имеются ссылки в запросе, доступны через индексы, не требуются чтения страниц данных.

В DB2 для MVS в настоящее время выполняется как Oring, так и ANDing с многими индексами в сложных комбинациях предикатов с AND и OR с использованием методов, представленных в [MHWC90].

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