powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разделение составного индекса на отдельные
25 сообщений из 41, страница 1 из 2
Разделение составного индекса на отдельные
    #39692808
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таблице был составной индекс для полей ФИО, он состоял срезу из трех полей. Поиск по имени+фамилии выполнялся махом.
Разбил этот индекс на три отдельных bitmap-индекса. Теперь поиск идет минуту.
Посмотрел план выполнения - при поиске по имени+фамилии задействуется только индекс на фамилию, а имя уже ищется без индекса.
Почему так? Куда копать?
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692811
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

"Работает? Не трогай!"(с)

верните все в зад ...
или объясните, зачем были сделаны все ваши манипуляции? чего не устраивало при старом раскладе и что хотели получить при новом...
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692813
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна,
Хотелось экономии места на диске за счет bitmap
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692817
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

почему вы решили, что три битмапа будет меньше по месту на диске, чем один b-tree?
другие способы уменьшения размера индекса пробовали (compressб pctfree)?
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692819
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

кроме того, "побочные эффекты" битмапов изучили? в том, что они не будут вам мешать больше, чем помогать - удостоверились?
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692823
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

на всякий случай - почитайте ... может подчерпнете что-то новое, полезное и интересно для себя...
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692824
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна,
Если данные малоселективные, то использование битмапа экономит место
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692839
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChukisЕсли данные малоселективныеТебе следует сперва понять, что это значит, прежде чем становится "архитектором".
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692845
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis,

гипотетически может быть многое, практически - гораздо меньше. вы размер исходного индекса и сумму размеров трех "новоиспеченных" индексов - сравнивали? желаемый профит по экономии дискового пространства получили? этот профит стоит того геммора, что вы выхватили с производительностью?

кроме того, совокупность трех малоселективных полей может дать вполне себе высокую селективность, если что.
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692868
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChukisВ таблице был составной индекс для полей ФИО, он состоял срезу из трех полей. Поиск по имени+фамилии выполнялся махом.
Разбил этот индекс на три отдельных bitmap-индекса. Теперь поиск идет минуту.
Посмотрел план выполнения - при поиске по имени+фамилии задействуется только индекс на фамилию, а имя уже ищется без индекса.
Почему так? Куда копать?
а голову включить?
при поиске по фамилии у вас останется сколько строк? 1? 2?
а при поиске по имени (например, Алексей) останется процентов 5
по которым потом будет искаться фамилия...
я так понимаю, если поиск идёт минуту, строк у вас там хватает, чтобы 5% столько искало
а в запросе наверное ещё и сортировка есть...
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692873
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, автор расчитывал на BITMAP-AND

Но надо бы, как обычно указать версию, когда и как собиралась статистика и нет ли параметров, запрещающих использования таких операция

Ну и да -- битмэп индекс на [часто]изменяемых таблицах -- зло
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692879
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,
Oracle 10g.
Делаю изменения в архивной таблице за пару лет. Данные там не будут меняться.
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692882
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chukis....bitmap-индекса....
А что это такое и зачем используется - знаешь?
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692883
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevChukis....bitmap-индекса....
А что это такое и зачем используется - знаешь?Ну а как же! Вот же - всё написано:ChukisЕсли данные малоселективные, то использование битмапа экономит место
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692885
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev,
Индекс на основе битовых карт, устроен иначе, нежели B-дерево
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692886
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChukisИндекс на основе битовых карт, устроен иначе, нежели B-дерево
Код: plaintext
1.
2.
3.
   "Спорят грузин и армянин.
    - Армяне лучше, чем грузины!
    - Чем? Ну чем они лучше?!
    - Чем грузины."
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692926
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но он действительно устроен сильно иначе
И в этом проявляются как его плюсы -- побитовые OR/AND операции между картами нескольких индексов, (возможно) меньший размер, хранение NULL и т.д, так и минусы -- изменение значения блокирует все строки, в которых это значение было или будет
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692929
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но использовать его для экономии места?
Наверное, только в очень вырожденных случаях
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39692995
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChukisOracle 10g.
Просто не используйте bitmap на этой версии.
Они там только появились и еще не переболели всеми теми детскими болезнями, которыми традиционно болеют все новые багофичи oracle.
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693008
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так с 7.3.4 и болел?
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693029
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На самом деле, в добавок к индексу фамилия+имя есть еще индекс фамилия+дата рождения . И начиная эксперимент с разделением, в случае удачного разделения первого индекса, я хотел сделать еще индекс просто по дате рождения. Думал, что для таких полей bitmap должен помочь.
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693038
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Битмап индекс по дате - это сильно.

IMHO

Особенно умиляет "Если данные малоселективные" ( C ) Chukis

я так понимаю, у Вас все люди малоселективно в один день рождаются.... Т.е., как известно, с 1 по 13... национальная идея... бухаем... жрем салатики... тр#$%ся... и ровно через 9 месяцев население страны "малоселективно" рождается ?

YouTube Video
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693042
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположение не подтвердилось ((( Наша страна очень плохо поддерживает национальную идею ((((

Или при кол-ве алкоголя, которое можно употребить за 13 дней, рождаемость не получается

https://alldates.ru/statistics/alldates.shtml
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693044
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ты сейчас о чем?
Битмэп индекс именно по дате (без времени) рождения вполне себе неплохо например на десятки-сотни тысяч клиентов
Ну такие индексы обычно лепят в DWH, где именно битмэп индексы наиболее потребны

На самом деле аффтор умолчал про статистику (в 10g она автоматом сразу не собирается) и примеры запросов (если там LIKE, то, насколько помню, с битмэп индексам оно тоже плохо себя ведет)

А просто так хаять -- ну какой смысл?
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693049
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,
Спасибо за понимание. Like довольно часто применяется в поиске по фамилии и имени в этой базе. Про этот ньюанс не слушал.
А про статистику - на таблице свежесобранная статистика. Таблица партиционинная.
Базу проектировал не я, но я хочу её малость улучшить.
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разделение составного индекса на отдельные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]