Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Новый топик    Ответить
 MDC+index ANDing  [new]
db2test
Guest
Добрый день.

Есть тестовый запрос :
select bukrs, gjahr, perio, count(*), sum(fkbtr)
from db2inst1.testtab32mdc
where bukrs='1100' and gjahr='2010' and perio='003'
group by bukrs, gjahr, perio
order by bukrs, gjahr, perio;

В таблице db2inst1.testtab32mdc поле bukrs является mdc-измерением.
Также создан обычный индекс по полям gjahr, perio
Собрана статистика с with distribution and detailed indexes all

Но в плане данного запроса есть только использование индекса по полям gjahr, perio (т.е. блочный индекс по bukrs не используется)

Если убрать предикат perio='003', то начинает выполняться index ANDing между этими двумя индексами.

Как бы заставить оптимизатор делать ANDing блочного mdc-индекса и обычного составного на исходном запросе ?

Опробовано на 9.1.8 и 9.7.2
8 дек 10, 15:14    [9905620]     Ответить | Цитировать Сообщить модератору
 Re: MDC+index ANDing  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
db2test,

Добрый день.

Одно из:
- Использовать optimization profile
- and perio||''='003'
8 дек 10, 15:36    [9905846]     Ответить | Цитировать Сообщить модератору
 Re: MDC+index ANDing  [new]
db2test
Guest
Mark Barinstein
- and perio||''='003'

О как! :) Спасибо.
А что это за хитрый "хинт" такой ? Где почитать можно ?
Правда при иcпользовании этого "хинта" index ANDing произошел, но запрос стал работать в 3 раза медленнее чем по RID-индексу gjahr+perio.

А как вообще такое поведение оптимизатора можно объяснить ?
Вроде в мануалах пишут, что миксовать использование BID- и RID-индеков в запросе можно и нужно.
8 дек 10, 16:11    [9906124]     Ответить | Цитировать Сообщить модератору
 Re: MDC+index ANDing  [new]
Mark Barinstein
Member

Откуда: Москва
Сообщений: 4946
db2test
Mark Barinstein
- and perio||''='003'
А что это за хитрый "хинт" такой ? Где почитать можно ?
Оно не любит выражений по полю, говорит, что "некоторые оптимизационные техники" не могут быть применены в этом случае.
db2test
Правда при иcпользовании этого "хинта" index ANDing произошел, но запрос стал работать в 3 раза медленнее чем по RID-индексу gjahr+perio.

А как вообще такое поведение оптимизатора можно объяснить ?
Вроде в мануалах пишут, что миксовать использование BID- и RID-индеков в запросе можно и нужно.
Оно умеет цену запросов вычислять и в данном случае решило (видимо, правильно), что оптимальнее будет использовать RID индекс.
8 дек 10, 16:17    [9906167]     Ответить | Цитировать Сообщить модератору
Все форумы / IBM DB2, WebSphere, IMS, U2, etc Ответить