powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Составной индекс только по определенному значению отдельного поля
13 сообщений из 13, страница 1 из 1
Составной индекс только по определенному значению отдельного поля
    #39363656
Avotge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо сделать b-tree индексы типа
Код: plsql
1.
field1, field2, field3, ....... field7


Но т.к. индексируемые таблицы относит. большие, 10-ки млн записей,
то было бы хорошо имхо сделать этот индекс только для записей, у которых например field2 in (2, 3), что уменьшило бы его объем раза в два.
Можно написать индекс по функции и для каждого поля индекса прописать
Код: plsql
1.
2.
3.
4.
5.
6.
case when field2 in (2, 3) then field1 end,
case when field2 in (2, 3) then field2 end,
case when field2 in (2, 3) then field3 end,
case when field2 in (2, 3) then field4 end
....
case when field2 in (2, 3) then field7 end


Не придумал, но можно ли сделать то же самое, как-то изящнее, не прописывая условие для каждого поля?
...
Рейтинг: 0 / 0
Составной индекс только по определенному значению отдельного поля
    #39363660
Avotge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На самом деле условия могут быть и сложнее, а не просто field2 in (2,3), а например
Код: plsql
1.
field2 in (2,3) and regexp_instr(field3, '.....')>0


Возможно, стоит интересующие записи даже просто выносить в отдельную таблицу.
Но может есть вариант задать условие для записей, которые надо проиндексировать только один раз?
...
Рейтинг: 0 / 0
Составной индекс только по определенному значению отдельного поля
    #39363661
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Avotgeможно ли сделать то же самое, как-то изящнее, не прописывая условие для каждого поля?

Партиционированная таблица + локальный индекс.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Составной индекс только по определенному значению отдельного поля
    #39363675
Avotge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovПартиционированная таблица + локальный индекс.
Вариант. Но патиционирования у нас нет (плюс именно поэтому итак кучка таблиц, представляющих собой как бы патиции ))
Но суть ясна. Можно сделать отдельную таблицу конечно, куда сваливать нужные записи.
...
Рейтинг: 0 / 0
Составной индекс только по определенному значению отдельного поля
    #39363792
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AvotgeНа самом деле условия могут быть и сложнее, а не просто field2 in (2,3), а например
Код: plsql
1.
field2 in (2,3) and regexp_instr(field3, '.....')>0


Возможно, стоит интересующие записи даже просто выносить в отдельную таблицу.
Но может есть вариант задать условие для записей, которые надо проиндексировать только один раз?
сложно будет использовать в запросе, ведь формулу надо повторить во where

как +1 вариант, сделать матвью и его проиндексировать

......
stax
...
Рейтинг: 0 / 0
Составной индекс только по определенному значению отдельного поля
    #39363976
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..сложно будет использовать в запросе, ведь формулу надо повторить во whereНачиная с 11g легко - виртуальные колонки.
...
Рейтинг: 0 / 0
Составной индекс только по определенному значению отдельного поля
    #39364008
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicstax..сложно будет использовать в запросе, ведь формулу надо повторить во whereНачиная с 11g легко - виртуальные колонки.

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

.....
stax
...
Рейтинг: 0 / 0
Составной индекс только по определенному значению отдельного поля
    #39364009
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А дальше?
...
Рейтинг: 0 / 0
Составной индекс только по определенному значению отдельного поля
    #39364017
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровА дальше?
дальше использовать клонки в запросах

.....
stax
...
Рейтинг: 0 / 0
Составной индекс только по определенному значению отдельного поля
    #39364230
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..добавить в таблицу колонкуНапрасная трата места ... stax..заполнять триггером... и времени.
...
Рейтинг: 0 / 0
Составной индекс только по определенному значению отдельного поля
    #39364285
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..Вячеслав ЛюбомудровА дальше?
дальше использовать клонки в запросах

.....
staxЦель, напомню, состояла в "что уменьшило бы его объем раза в два"
С секционированием (по этой, виртуальной или заполняемой триггером колонке), возможно, это бы и помогло (с 11g UNUSABLE-сегмент индекса не занимает места)
Но стоит ли оно того?
...
Рейтинг: 0 / 0
Составной индекс только по определенному значению отдельного поля
    #39365871
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicstax..добавить в таблицу колонкуНапрасная трата места ... stax..заполнять триггером... и времени.
я согласен
наскоко помню в древних версиях оракля так и поступал
при создании fbi индекса создавал невидимую виртуальную колонку
з 11-ки разрешили фичу пользователям

.....
stax
...
Рейтинг: 0 / 0
Составной индекс только по определенному значению отдельного поля
    #39365878
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудровstax..пропущено...

дальше использовать клонки в запросах

.....
staxЦель, напомню, состояла в "что уменьшило бы его объем раза в два"
С секционированием (по этой, виртуальной или заполняемой триггером колонке), возможно, это бы и помогло (с 11g UNUSABLE-сегмент индекса не занимает места)
Но стоит ли оно того?
я так понял цели две
1) уменьшить обьем индекса, он и уменьшится за счет null значений
2) удобство, если создавать индекс без использования "віртуальных" колонок,
то придется выражение (case) в точности повторять в операторе

......
stax
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Составной индекс только по определенному значению отдельного поля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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