Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 что лучше - функциональный индекс или индекс по доп.полю?  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
...в плане производительности и работы с like 'abc%'?
12 сен 06, 12:47    [3123621]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
grexhide
Member [заблокирован]

Откуда: Страна непреодолимых противоречий
Сообщений: 8553
Alexus12
...в плане производительности и работы с like 'abc%'?


зависит строго от того, что у тебя стоит перед like
12 сен 06, 12:51    [3123654]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
RA\/EN
Member

Откуда:
Сообщений: 3658
Alexus12
...в плане производительности и работы с like 'abc%'?


Для твоего примера и обычный индекс подойдет.
Пиши реальный пример, по которому вопрос.
12 сен 06, 12:53    [3123683]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
есть таблица журнал_операций (миллионы записей), из нее понадобятся запросы по части одного поля (текст, 3-5 символов из 20) - выборка и группировка по этой части.

что лучше - доп поле с 5 символами исходного или функциональный индекс на исходное поле?
12 сен 06, 13:11    [3123853]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
contr
Member

Откуда:
Сообщений: 1909
Alexus12
есть таблица журнал_операций (миллионы записей), из нее понадобятся запросы по части одного поля (текст, 3-5 символов из 20) - выборка и группировка по этой части.
что лучше - доп поле с 5 символами исходного или функциональный индекс на исходное поле?

Подумайте про секционирование по этомоу полю - если это возможно.
Очень вероятно, что индекс будет не слишком эффективен, при том что операции вставки в журнал придержит заметно.
12 сен 06, 13:25    [3123986]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 63951
Блог
Alexus12
что лучше - доп поле с 5 символами исходного или функциональный индекс на исходное поле?

Хм. Я знаю единственное преимущество варианта с дополнительным полем - будет работать в SE.

Другой вопрос - contr прав в том, что оба варианта могут оказаться далеки от лучшего решения.
12 сен 06, 14:27    [3124452]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
боюсь, будет сложно описать все возможные секции для него..

кстати вопрос: есть поле всего с двумя значениями (текст) - как для него сделать партицирование вместо индекса?
12 сен 06, 14:33    [3124509]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116133
Alexus12
кстати вопрос: есть поле всего с двумя значениями (текст) - как для него сделать партицирование вместо индекса?

Простите за контрвопрос :-) Это то поле, для которого Вы используете like ?
12 сен 06, 14:36    [3124532]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
Гость 12092006
Guest
Alexus12
боюсь, будет сложно описать все возможные секции для него..

кстати вопрос: есть поле всего с двумя значениями (текст) - как для него сделать партицирование вместо индекса?

partition by list?
12 сен 06, 14:37    [3124550]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
contr
Member

Откуда:
Сообщений: 1909
Alexus12
боюсь, будет сложно описать все возможные секции для него..

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

Еще одно альтернативное решение - hash cluster из одной таблицы по подстроке.
Жаль, нельзя секционрровать - сам бы пользовался с превеликим удовольствием :)
12 сен 06, 14:50    [3124657]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6912
Alexus12
что лучше - доп поле с 5 символами исходного или функциональный индекс на исходное поле?

а как Вы думаете работает FBI?
12 сен 06, 14:53    [3124686]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
автор
Это то поле, для которого Вы используете like


нет, другое


автор
partition by list?


это возможно в 8.1.7?
можете пример?
12 сен 06, 15:54    [3125160]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
пробую индекс на поле с двумя сначениями - оптимизатор не хочет его использовать - говорит, cost в 4 раза выше full scan 8)
с партицированием то же не будет?
12 сен 06, 17:04    [3125697]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
таким образом, у меня два кандидата на партицирование: поле с двумя значениями (навсегда) и поле с 50 значениями (на сейчас, дальше может появиться еще)

вопрос - как лучше партицировать/на кого индекс и какой?
12 сен 06, 17:11    [3125740]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6912
Alexus12
пробую индекс на поле с двумя сначениями - оптимизатор не хочет его использовать - говорит, cost в 4 раза выше full scan 8)
с партицированием то же не будет?

а Вы проверили? Оптимизатор чаще прав, чем ошибается...
12 сен 06, 17:21    [3125806]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
contr
Member

Откуда:
Сообщений: 1909
Alexus12
таким образом, у меня два кандидата на партицирование: поле с двумя значениями (навсегда) и поле с 50 значениями (на сейчас, дальше может появиться еще)
вопрос - как лучше партицировать/на кого индекс и какой?

С секционированием "того же" не будет по определению - невозможно игнорировать физическое размещение данных :)
Другой вопрос, что для получения преимуществ надо накладывать адекватные ограничения на ключ секционирования :)

Про два значения: в 8i можно сделать partition by hash. Но смысл?
Про 50: можно by hash, можно by range. Range более гибок в плане управления размерами секций.
С hash - проверить, что использованы все разделы. Если нет, то изменить количество (+- один раздел)
Про индексы: если можете обойтись локальными - обходитесь.
12 сен 06, 17:40    [3125929]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
grexhide
Member [заблокирован]

Откуда: Страна непреодолимых противоречий
Сообщений: 8553
alex-ls

а Вы проверили? Оптимизатор чаще прав, чем ошибается...


Это зависит от степени доверительности отношений между разработчиком и оптимизатором. Говоря проще - понимания друг друга.

Есть и такие разработчики, котороые оптимизатор не понимают в принципе (глядя на код предшественников)
12 сен 06, 17:49    [3125996]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5928
f like 'abc%' нужно дополнить предикатом, который посадит запрос на индекс по полю f.

'abc' <= f and f <= 'abc'||crh(255) and  f like 'abc%'

Про crh(255) нужно подумать, как он будет вести себя в двнном конкретном случае с разными в том числе многобайтовыми кодировками, да и like тут может быть уже не нужен.

А по теме, FBI это тоже самое, что добавить вычисляемое поле в таблицу и построить по нему индекс. Только эти операции скрыты от пользователя, что является + в пользу FBI.
12 сен 06, 17:52    [3126010]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6912
mcureenab
А по теме, FBI это тоже самое, что добавить вычисляемое поле в таблицу и построить по нему индекс. Только эти операции скрыты от пользователя, что является + в пользу FBI.

весьма слабенький плюс надо сказать...
12 сен 06, 17:54    [3126026]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
автор
Про два значения: в 8i можно сделать partition by hash. Но смысл?


то есть я не могу указать эти два текстовых значения в качестве ключа партицирования?
12 сен 06, 18:04    [3126088]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
contr
Member

Откуда:
Сообщений: 1909
Alexus12
автор
Про два значения: в 8i можно сделать partition by hash. Но смысл?
то есть я не могу указать эти два текстовых значения в качестве ключа партицирования?

Ну получите Вы вместо одного объекта два... Выигрыш может быть только в случае, когда по одному из ключей данных во много раз больше чем по второму и ищем по первому.
12 сен 06, 18:23    [3126192]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
как раз очень часты запросы, берущие или первый, или второй вариант.
таким образом получу ускорение работы в два раза (частота встречания значений примерно равна) - или нет?
12 сен 06, 18:46    [3126335]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
contr
Member

Откуда:
Сообщений: 1909
Alexus12
как раз очень часты запросы, берущие или первый, или второй вариант.
таким образом получу ускорение работы в два раза (частота встречания значений примерно равна) - или нет?

Ну не совсем.
На FTS - максимум в два, если есть доп. селективные условия по индексированному полю - то ни во сколько.
12 сен 06, 18:48    [3126347]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
Alexus12
Member

Откуда:
Сообщений: 2868
то есть если у меня есть индекс по дате и партицирование по этому полю-признаку, и я хочу данные за 1 дату и с признаком = 1, то партицирование не будет использовано?
13 сен 06, 09:55    [3127826]     Ответить | Цитировать Сообщить модератору
 Re: что лучше - функциональный индекс или индекс по доп.полю?  [new]
contr
Member

Откуда:
Сообщений: 1909
Alexus12
то есть если у меня есть индекс по дате и партицирование по этому полю-признаку, и я хочу данные за 1 дату и с признаком = 1, то партицирование не будет использовано?

Оно не может не быть использовано :)
Дело в другом.
А именно - в количестве логических чтений, необходимых для дОбычи строки.
В случае уникального индекса это будет глубина индекса + 1.
Теперь секционируем табличку по низкоселективному (а как еще?) критерию.
На две части :)
Индекс сделаем локальным непрефиксированным (соответственно, неуникальным)
В зависимости от того, наложили ли мы ограничение на ключ секционирования или нет, стоимость составитЪ либо те же "глубина индекса + 1" либо 2*"глубина индекса + 1"
:)
Можно сделать глобальный уникальный индекс, тогда вернемся к "глубина индекса + 1" ;)

Однако по FTS выигрыш возможен. Главное - не запускать HWM сегмента в космос ;)
13 сен 06, 10:45    [3128185]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить