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