powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разделение составного индекса на отдельные
41 сообщений из 41, показаны все 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
Разделение составного индекса на отдельные
    #39693050
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChukisА про статистику - на таблице свежесобранная статистикаГлавное, чтоб статистика при этом была еще и на индексах
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693059
Chukis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров,
Так статистика должна пересчитываться при создании индекса.

авторDatabase now automatically collects statistics during index creation and rebuild. This clause is supported for backward compatibility and will not cause errors.
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693062
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChukisТак статистика должна пересчитываться при создании индекса.авторDatabase now automatically collects statistics during index creation and rebuild. This clause is supported for backward compatibility and will not cause errors.У табя версия now ?

Вячеслав ЛюбомудровБитмэп индекс именно по дате (без времени) рождения вполне себе неплохо например на десятки-сотни тысяч клиентов10 тысяч дат на каждый день это 27+ лет. Этак и на высокую селективность можно наступить.
Кроме того, если разговор про DWH, то по датам часто используется диапазон, но не равенство.
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693064
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Вячеслав Любомудров....именно по дате (без времени) рождения вполне себе неплохо....
...по датам часто используется диапазон, но не равенство.
Слабо представляю себе запрос:

Найти всех людей которые родились 31.03.1977

Поиск же по ФИО + дата (как принято например в органах правопорядка) - вполне себе селективен.

Использование же __чисто__ даты рождения.... ну я могу представить себе только два варианта:

в каких нибудь DWH для продажи, поиск всех покупок совершенных в день рождения - но тут ни bitmap, ни любой другой индекс не поможет
в какой нибудь статистики, сколько людей родились в указанный день - но опять таки, осмысленно тогда делать запрос сразу по всем дням. Т.е. будет full table scan + group by... индекс даром не нужен

В любых других случаях, поиск составного условия по составному же индексу - выглядит как-то разумнее. И, да, я не админ, мне на статистику и селективность - пофиг )))
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693068
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p.s.
ну или рассылка поздравительных открыток в день рождения, но как-бы врят ли это частая операция, в худшем случае, запрос раз в день ))) странно его оптимизировать до уровня "bitmap лучше чем b-tree" ))).
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693070
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChukisТак статистика должна пересчитываться при создании индекса.в вашей версии оракла она ничего никому не должна. вы ладу-шестерку тоже по сервис-мануалу от весты-кросс обслуживать будете? так-то и то и другое суть есть "жигули".
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693071
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChukisБазу проектировал не я, но я хочу её малость улучшить.вам не кажется, что у вас пока плохо получается?

З.Ы.
сорри за наезды, просто настроение такое...
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693072
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevp.s.
ну или рассылка поздравительных открыток в день рождения, но как-бы врят ли это частая операция, в худшем случае, запрос раз в день ))) странно его оптимизировать до уровня "bitmap лучше чем b-tree" ))).Наоборот, здесь для большой БД выигрыш в объеме весьма существеннен, а ведь скорее всего этот индекс больше не для чего и не будет нужен -- просто жалко на него тратить место
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693074
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щукина Аннавы ладу-шестерку тоже по сервис-мануалу от весты-кросс обслуживать будете? так-то и то и другое суть есть "жигули".это, если что, было к тому, что документацию читать нужно к своей версии СУБД, а не к 18C
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693075
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Щукина АннаЗ.Ы.
сорри за наезды, просто настроение такое...
+
ну а я видел в продакшен базе данных, когда в продакшене OLTP биллинга, дату счета сделали bitmap index'ов... а что? он же вполне себе "малоселективен" по статистике... пара сотен тысяч счетов в месяц, а дата у всех 31-ое число....

p.s. сначала "прибежал" junior с горящими глазами, я про такую шутуку вычитал в документации, bitmap индекс называется, давайте у нас его включим.... его отправили читать дальше, про разницу между OLTP и DWH
а через месяц, на проде, появился bitmap index от senior'а, который уже по офису не бегал ))), а просто взял и создал... поле то малоселективно )))
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693090
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev-2-пропущено...

...по датам часто используется диапазон, но не равенство.
Слабо представляю себе запрос:

Найти всех людей которые родились 31.03.1977Ну так это ж не есть диапазон. Тебе намекали про выборку возрастных групп от и до, например, в маркетинговых акциях.
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693182
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно глупый вопрос? Если цель экономить место почему не использовать композитные компрессированные индексы?
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693183
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и самое главное? А кто пожаловался на место? Преждевременная оптимизация без понимания это как-то смело мне так кажется...

p.s. про компресс увидел от Анны сообщение вначале, которое вопрощающий проигнорировал. Ей бы ещё от стиля Элика избавиться, цены бы не было её советам...
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693204
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShtockЕй бы ещё от стиля Элика избавиться, цены бы не было её советам...Дураков отстреливать нужно ещё на взлёте.
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693260
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevЩукина АннаЗ.Ы.
сорри за наезды, просто настроение такое...
+
ну а я видел в продакшен базе данных, когда в продакшене OLTP биллинга, дату счета сделали bitmap index'ов... а что? он же вполне себе "малоселективен" по статистике... пара сотен тысяч счетов в месяц, а дата у всех 31-ое число....

p.s. сначала "прибежал" junior с горящими глазами, я про такую шутуку вычитал в документации, bitmap индекс называется, давайте у нас его включим.... его отправили читать дальше, про разницу между OLTP и DWH
а через месяц, на проде, появился bitmap index от senior'а, который уже по офису не бегал ))), а просто взял и создал... поле то малоселективно )))На oltp битмап индексы вешают намертво базу блокировками
был случай, что вешали уже при двух одновременных сессиях
в общем, на практике он применим только в dwh для star transformation
...
Рейтинг: 0 / 0
Разделение составного индекса на отдельные
    #39693261
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакLeonid Kudryavtsevпропущено...

+
ну а я видел в продакшен базе данных, когда в продакшене OLTP биллинга, дату счета сделали bitmap index'ов... а что? он же вполне себе "малоселективен" по статистике... пара сотен тысяч счетов в месяц, а дата у всех 31-ое число....

p.s. сначала "прибежал" junior с горящими глазами, я про такую шутуку вычитал в документации, bitmap индекс называется, давайте у нас его включим.... его отправили читать дальше, про разницу между OLTP и DWH
а через месяц, на проде, появился bitmap index от senior'а, который уже по офису не бегал ))), а просто взял и создал... поле то малоселективно )))На oltp битмап индексы вешают намертво базу блокировками
был случай, что вешали уже при двух одновременных сессиях
в общем, на практике он применим только в dwh для star transformation
точнее, база не вешалась, и процы и память свободны, просто приложение висит на блокировке
...
Рейтинг: 0 / 0
41 сообщений из 41, показаны все 2 страниц
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Разделение составного индекса на отдельные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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