"Dmitri Kuzmenko" ...
>
> Hello, Vlad!
>
> Vlad Horsun wrote:
>
> >>>>по причине очень больших
> >>>>цепочек номеров записей для одного ключа индекса.
> >>>
> >>>    И что ?
>
> если мне память не изменяет, QuickSort плохо сортирует
> уже сортированные или повторяющиеся значения.

    Да, наш модуль сортировки не самым лучшим образом работает с повторяющимися
значениями. Но в FB2 ему на вход подаются не только ключи записей, но и номера
записей, что полностью исключает повторение сортируемых значений. Это для
построения индексов. Для order by\group by это было так всегда. Единственное
известное мне исключение - сортировка для distinct.

    В случае сортировки для индекса в FB 1.x замедление будет иметь место
только если эти одинаковые значения совпадают с физическим порядком чтения
записей из таблицы. Ибо quicksort'ом сортируются небольшие группы записей, а
не вся таблица целиком. Далее - сортировка слиянием, у которой нет такого
недостатка.

> Кроме того, у вас там

    Это у кого- у вас ? :)

> выгрузка из файла сортировки
> в индекс происходит блоками, что в определенных ситуациях
> приводит к нехилым тормозам и слабой загрузке процессора.

    Не совсем так.

> я все никак не могу затестировать restore, нет у меня реальной базы
> на 2-5 гиг с большим числом FK, включая "плохие".

    Спроси Коваленко :) А лучше, конечно, попробуй сам

> Синтетику тестить тоже можно, но это отдельный разговор.
>
> >>    А это нужно спросить у того, кто знает, какой метод сортировки
> >>использует птичка при построении индекса ;)
> >
> >     До ОДС 11 цепочки дубликатов не сортируются и новые номера записей
> > вставляются на первое место
>
> это уже другой вопрос, т.к. влияет на скорость сборки мусора в индексе.

    И на скорость вставки ключа в индекс. При обычной работе. И вообще - кто
меня сначала длинными цепочками с толку сбил ? :)

--
Хорсун Влад

PS Реальная БД : ОДС 10.1, таблица 1798843 записей, 2 индекса :

а) PK - INT,
    селективность 5.55915676159202E-7

б) IDX - INT
    селективность 0.01351

Создание индексов, мс :

            FB 1.5.2    Ya 892        FB 2.0        FB 2.1        IB 7.5.1
PK             8352       7461          7040          6149             9353
IDX          13580     11106          7451          6990           10685


Ответить