|
|
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
В таблице был составной индекс для полей ФИО, он состоял срезу из трех полей. Поиск по имени+фамилии выполнялся махом. Разбил этот индекс на три отдельных bitmap-индекса. Теперь поиск идет минуту. Посмотрел план выполнения - при поиске по имени+фамилии задействуется только индекс на фамилию, а имя уже ищется без индекса. Почему так? Куда копать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 09:42 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Chukis, "Работает? Не трогай!"(с) верните все в зад ... или объясните, зачем были сделаны все ваши манипуляции? чего не устраивало при старом раскладе и что хотели получить при новом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 09:45 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, Хотелось экономии места на диске за счет bitmap ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 09:49 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Chukis, почему вы решили, что три битмапа будет меньше по месту на диске, чем один b-tree? другие способы уменьшения размера индекса пробовали (compressб pctfree)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 09:53 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Chukis, кроме того, "побочные эффекты" битмапов изучили? в том, что они не будут вам мешать больше, чем помогать - удостоверились? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 09:54 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Chukis, на всякий случай - почитайте ... может подчерпнете что-то новое, полезное и интересно для себя... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 09:58 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, Если данные малоселективные, то использование битмапа экономит место ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 09:58 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
ChukisЕсли данные малоселективныеТебе следует сперва понять, что это значит, прежде чем становится "архитектором". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 10:11 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Chukis, гипотетически может быть многое, практически - гораздо меньше. вы размер исходного индекса и сумму размеров трех "новоиспеченных" индексов - сравнивали? желаемый профит по экономии дискового пространства получили? этот профит стоит того геммора, что вы выхватили с производительностью? кроме того, совокупность трех малоселективных полей может дать вполне себе высокую селективность, если что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 10:14 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
ChukisВ таблице был составной индекс для полей ФИО, он состоял срезу из трех полей. Поиск по имени+фамилии выполнялся махом. Разбил этот индекс на три отдельных bitmap-индекса. Теперь поиск идет минуту. Посмотрел план выполнения - при поиске по имени+фамилии задействуется только индекс на фамилию, а имя уже ищется без индекса. Почему так? Куда копать? а голову включить? при поиске по фамилии у вас останется сколько строк? 1? 2? а при поиске по имени (например, Алексей) останется процентов 5 по которым потом будет искаться фамилия... я так понимаю, если поиск идёт минуту, строк у вас там хватает, чтобы 5% столько искало а в запросе наверное ещё и сортировка есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 10:41 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Похоже, автор расчитывал на BITMAP-AND Но надо бы, как обычно указать версию, когда и как собиралась статистика и нет ли параметров, запрещающих использования таких операция Ну и да -- битмэп индекс на [часто]изменяемых таблицах -- зло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 10:50 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, Oracle 10g. Делаю изменения в архивной таблице за пару лет. Данные там не будут меняться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 10:58 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Chukis....bitmap-индекса.... А что это такое и зачем используется - знаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 11:00 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevChukis....bitmap-индекса.... А что это такое и зачем используется - знаешь?Ну а как же! Вот же - всё написано:ChukisЕсли данные малоселективные, то использование битмапа экономит место ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 11:03 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Индекс на основе битовых карт, устроен иначе, нежели B-дерево ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 11:04 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
ChukisИндекс на основе битовых карт, устроен иначе, нежели B-дерево Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 11:08 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Но он действительно устроен сильно иначе И в этом проявляются как его плюсы -- побитовые OR/AND операции между картами нескольких индексов, (возможно) меньший размер, хранение NULL и т.д, так и минусы -- изменение значения блокирует все строки, в которых это значение было или будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 12:35 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Но использовать его для экономии места? Наверное, только в очень вырожденных случаях ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 12:36 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
ChukisOracle 10g. Просто не используйте bitmap на этой версии. Они там только появились и еще не переболели всеми теми детскими болезнями, которыми традиционно болеют все новые багофичи oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 14:13 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Так с 7.3.4 и болел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 14:33 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
На самом деле, в добавок к индексу фамилия+имя есть еще индекс фамилия+дата рождения . И начиная эксперимент с разделением, в случае удачного разделения первого индекса, я хотел сделать еще индекс просто по дате рождения. Думал, что для таких полей bitmap должен помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 15:19 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Битмап индекс по дате - это сильно. IMHO Особенно умиляет "Если данные малоселективные" ( C ) Chukis я так понимаю, у Вас все люди малоселективно в один день рождаются.... Т.е., как известно, с 1 по 13... национальная идея... бухаем... жрем салатики... тр#$%ся... и ровно через 9 месяцев население страны "малоселективно" рождается ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 15:33 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Предположение не подтвердилось ((( Наша страна очень плохо поддерживает национальную идею (((( Или при кол-ве алкоголя, которое можно употребить за 13 дней, рождаемость не получается https://alldates.ru/statistics/alldates.shtml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 15:37 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Вот ты сейчас о чем? Битмэп индекс именно по дате (без времени) рождения вполне себе неплохо например на десятки-сотни тысяч клиентов Ну такие индексы обычно лепят в DWH, где именно битмэп индексы наиболее потребны На самом деле аффтор умолчал про статистику (в 10g она автоматом сразу не собирается) и примеры запросов (если там LIKE, то, насколько помню, с битмэп индексам оно тоже плохо себя ведет) А просто так хаять -- ну какой смысл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 15:42 |
|
||
|
Разделение составного индекса на отдельные
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, Спасибо за понимание. Like довольно часто применяется в поиске по фамилии и имени в этой базе. Про этот ньюанс не слушал. А про статистику - на таблице свежесобранная статистика. Таблица партиционинная. Базу проектировал не я, но я хочу её малость улучшить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2018, 15:57 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39693042&tid=1883550]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
253ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 570ms |

| 0 / 0 |
