Hello, Dmitry!

Dmitry Yemanov wrote:

2. да, была идея исключать такие индексы из "плохих", хотя бы
опционально, но начиная с FB 1.5 имя индекса FK/PK формируется по
имени constraint, поэтому критерий "имя индекса начинается с RDB$FOREING" больше не работает.

RDB$RELATION_CONSTRAINTS.RDB$INDEX_NAME

опция "загружать метаданные" есть только в IBA 2.0.

Короче, ситуация такая:

1. индексы по FK строятся принудительно
2. плохая селективность может быть как у FK так и у любого другого индекса
3. индекс по FK, в отличие от обычного, служит для контроля
ссылочной целостности. Поэтому без удаления FK удален быть не может.

так что, через RDB$RELATION_CONSTRAINTS.RDB$INDEX_NAME
будет возможность показать, что конкретный "плохой" индекс
построен по ПК или ФК для FB 1.5/2.0.

Я уже раз десять тут повторял, что понятие "плохой" связано
только с общей селективностью. Если большинство запросов
выбирают по такому индексу малое количество ключей, то индекс
будет работать БЫСТРО. IBAnalyst не знает и знать не может,
какие запросы выполняются в приложениях, и как они используют
эти индексы.

p.s. спасибо Ded-у за комментарий.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34


Ответить