Hello, Evgeny!

Boltik Evgeny wrote:

Дима извени но скаких пор ФК стали плохими индексами это получается логику перенисти в триггер и удалить индекс ;) Я думаю тогда сервер при добавлении данных и удалении загнется :) т.к. будет натурал

IBA где-нибудь предлагает удалять такие индексы?

Цитирую хелп:

7. Почему индексы названы "плохими"?

Индексы, имеющие критическую селективность (ниже 0.01) IBAnalyst называет "плохими" по нескольким причинам:

- Селективность (избирательность) такого индекса ниже той, которая используется оптимизатором (константа 0.01). Теоретически оптимизатор не должен использовать такой индекс, тем не менее использует, если ничего другого нет.
- Такой индекс приводит к очень медленной сборке мусора.
Данная проблема решена только в InterBase 7.1/7.5, и будет решена в Firebird 2.0 - Такие индексы сильно замедляют процесс restore, и вообще сами по себе создаются долго (create/alter index active), по причине очень больших цепочек номеров записей для одного ключа индекса. - Если этот индекс используется в where для проверки на неизвестное значение (по которому много дубликатов ключа), то есть шанс что его использование приведет к сильному потреблению памяти на хранение большого количества ссылок на записи - Если такой индекс используется в order by, и дубликатов меньших значений больше (т.е. тех, которые располагаются в начале индекса), то будет много чтений страниц с диска, что ухудшит скорость выборки.
- IBAnalyst не может не сигнализировать о наличии таких индексов.

Худшим случаем "плохого" индекса является индекс со большим количеством ключей и значением 1 в Uniques, то есть с всего одним единственным значением ключа (см. "Бесполезные индексы" на странице Общая информация IBAnalyst).



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


Ответить