Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Порядок расположения колонок составного индекса / 25 сообщений из 49, страница 1 из 2
07.02.2017, 13:01
    #39399987
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
Задача: создать индекс из нескольких двух колонок таблицы.
Вопрос: как неинтуитивным путем понять в каком порядке их расположить?
...
Рейтинг: 0 / 0
07.02.2017, 13:02
    #39399990
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
--Eugene--,

Почитай Льюиса, прокачаешь свою интуицию.
...
Рейтинг: 0 / 0
07.02.2017, 13:06
    #39399995
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
Для начала, придумай запросы, которые будут типичны для этой таблички и которым понадобится индекс
Если всегда на равенство обоих колонок, то выбирай первую менее селективной и включи COMPRESS
...
Рейтинг: 0 / 0
07.02.2017, 13:09
    #39400005
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
Вячеслав ЛюбомудровЕсли всегда на равенство обоих колонок, то выбирай первую менее селективной и включи COMPRESSА я бы в таком случае выбрал в качестве первой наиболее селективную.
...
Рейтинг: 0 / 0
07.02.2017, 13:21
    #39400025
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
А смысл?
...
Рейтинг: 0 / 0
07.02.2017, 13:41
    #39400062
Порядок расположения колонок составного индекса
Вячеслав ЛюбомудровА смысл?

Мало - ли, вдруг по высоко-селективному браться нет-нет, а таки придется. А низкоселективному индекс как мертвому припарка.
...
Рейтинг: 0 / 0
07.02.2017, 13:51
    #39400083
Порядок расположения колонок составного индекса
С первым малоселективным можно INDEX SKIP SCAN делать
...
Рейтинг: 0 / 0
07.02.2017, 13:58
    #39400097
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
Товагищи, подскажите как вычислить селективность колонки для данного случая (с учетом перекоса данных, если таковой закономерен)?
...
Рейтинг: 0 / 0
07.02.2017, 14:03
    #39400104
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
Ну дык по-этому и был вопрос по поводу запросов
Также, понятно, что для уникального столбца второй нужен только для невляпывания в саму табличку -- тут естественно, первым уникальный, а лучше вообще IOT

Но, вот скажем, табличка тех же платежей/звонков и т.п. где есть дата и контора
За один день у определенной конторы в среднем было 10 платежей, но с другой стороны там 10000 контор (из которых как правило, большая часть мертвых), а в день совершается 10000 платежей/звонков (но даты с секундами) -- в одну секунду в среднем 8.
Дата здесь селективней, вот только в здравом уме никто не сделает индекс (дата, контора)
Наверное, таки, небольшая подмена понятий :-)

Ну и естественно, тестирование -- лучший арбитр
...
Рейтинг: 0 / 0
07.02.2017, 14:08
    #39400117
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
Короче, я опять какую-то херню понес

Надо интересоваться у ТС, что есть, как собирается обращаться и что, собственно говоря, хочет получить
...
Рейтинг: 0 / 0
07.02.2017, 14:18
    #39400133
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
Ёпт, я думал, есть какой-то общий подход..
...
Рейтинг: 0 / 0
07.02.2017, 14:54
    #39400167
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
--Eugene--,

Да, выглядит он так - почитай Льюиса, сначала поставь колонки по убыванию/возрастанию селективности, потом потестируй на реальных запросах по логике твоего бизнеса и выбери наиболее удобный лдя тебя вариант.
...
Рейтинг: 0 / 0
07.02.2017, 14:57
    #39400173
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
Еще раз -- самое главное, какие запросы туда будут, с какими предикатами и что ты от этого индекса ждешь
...
Рейтинг: 0 / 0
07.02.2017, 15:30
    #39400212
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
IMHO если индексы построили правильно (реально по тем двум колонкам, которые нужны) и запросов, где поиск идет по одной из колонок нет - то IMHO в 90% случаев, в реальной системе, будет "фиолетово".

Т.к. в большинстве случае, ошибаются уже на первом шаге, выбор индексов и колонок которые требуются, то система будет "стоять колом" в независимости от порядка полей )))

Лично я этим никогда не заморачивался, а порядок колонок указывал в "интиетивно понятном" виде )))

В тех 1-10% процентов случаев, где это важно - очень большая таблица или очень специфическое распределение данных или очень специфические запросы/план, такой выбор по "общим правилам" сформулированым на форуме все равно не сделать. Будет очень сильно зависит от конкретной проблемы с производительностью.

IMHO & AFAIK
...
Рейтинг: 0 / 0
07.02.2017, 16:29
    #39400258
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
Leonid Kudryavtsev,
+1
но еще хочется добавить, иногда индексы приходиться убивать чтобы другие индексы начали работать без велосипедов. поэтому перед созданием очередного шедевра необходимо сначала посмотреть что за шедевры уже создавали до тебя)
...
Рейтинг: 0 / 0
07.02.2017, 17:45
    #39400322
ind_14
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
--Eugene--,
А зачем вам индекс из 2х колонок? Почему не подойдет из одной?
...
Рейтинг: 0 / 0
07.02.2017, 18:17
    #39400364
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
ind_14,

ну допустим таблица партицирована двухуровнево (списками), а индекс нужен локальный по первичному ключу (который есть суть третья колонка)
...
Рейтинг: 0 / 0
07.02.2017, 18:19
    #39400366
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
трехколоночный индекс нужен в идеале, не двух
...
Рейтинг: 0 / 0
07.02.2017, 18:27
    #39400375
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
ind_14Почему не подойдет из одной?Стоило бы начать с количества строк. Зачем нужно хранить более одной строки, достаточно хранить одну самую любимую. Тогда и индексов не понадобится вообще.
...
Рейтинг: 0 / 0
07.02.2017, 18:31
    #39400378
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
-2-достаточно хранить одну самую любимую. Тогда и индексов не понадобится вообще.пошел выбирать самую любимую строку
...
Рейтинг: 0 / 0
09.02.2017, 11:34
    #39401482
fortnet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
--Eugene--ind_14,

ну допустим таблица партицирована двухуровнево (списками), а индекс нужен локальный по первичному ключу (который есть суть третья колонка)

Какой смысл первичный ключ делать локальным?
...
Рейтинг: 0 / 0
09.02.2017, 12:19
    #39401513
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
fortnet,

Я не собираюсь делать индекс первичного ключа локальным (хотя, может быть, имело бы смысл, не рассматривал идею). Индекс первичного ключа так и остается несекционированным.
Но рядом будет составной локальный индекс, включающий как ключи секционирования, так и первичного ключа.
...
Рейтинг: 0 / 0
09.02.2017, 17:45
    #39401808
kaldorey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
fortnet,

например, exchange partition including indexes
...
Рейтинг: 0 / 0
10.02.2017, 09:55
    #39402039
pihel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
kaldorey,

+ возможно отключения частями при вставке и частичного ребилда. И добавление колонки партиционирования может уменьшить высоту индекса.
...
Рейтинг: 0 / 0
10.02.2017, 10:41
    #39402070
fortnet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Порядок расположения колонок составного индекса
kaldorey,

влияние на производительность этой редкой операции мизерно, а проблемы с ожиданиями во время вставки в таблицу из-за проверки ограничения по ключу будут вполне ощутимыми.

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



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


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