powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / Имеет ли смысл составной индекс ...
56 сообщений из 56, показаны все 3 страниц
Имеет ли смысл составной индекс ...
    #38056804
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таблице есть 2 индекса (вообще то больше, но там все ясно)
create index ext_id on trans (ext, id) и create index id on trans (id)

В их необходимости сомнений нет, в смысле поиски идут по обоим, сомнение в "довеске" id в первом. Т.е. насколько этот "довесок" используется информиксом?
Не проще ли обойтись простыми
create index ext on trans (ext) и create index id on trans (id)

Запросы используют насколько могу судить все варианты в примерно одинаковой мере...
т.е. "WHERE ext = ... AND id = ..." (примерно в 30% случаев) и "WHERE ext = ..." (примерно в 30% случаев) и "WHERE id = ..." (примерно в 30% случаев, хотя тут чаще не "чистое условие", а в паре с временем например, "чистое" по количеству возвращенного не пройдет)

Причем:
поле ext строка "с претензией на уникальность" т.е. там и гуиды в строках, и свои от времени например рассчитанные значения... но все таки не уникальные (а каких то значений может быть много).
поле id имеет всего примерно 1500 (int-овых) значений, что на 50-ти миллионную таблицу не так уж много для индекса.

Ну, вот, в MSSQL я бы сделал 2 простых... он прекрасно работает и при "спаривании" в условии разных индексов. А в информиксе? Мне говорят "это для быстродействия" (тех самых первых 30% запросов), и типа когда он был не составным, а обычным (как считаю правильнее), все "очень тормозило"... НО!!! Меня не покидают смутные сомнения, что проблема в чем то другом.
Очень уж похоже на -
p.s. "Ноги" некоторым образом "растут" отсюда , если кому интересно.
но тут без возможности даже проверить.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38056841
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как мне кажется (откуда вообще сомнения) при выборке небольшого количества записей по первому индексу, на второй SQL даже не будет внимания обращать (ну к примеру 10 записей проще в памяти просканировать).
Т.е. тормозов быть не должно.
А раз были то причиной могло быть то, что информикс считал числовой индекс (id) более "легким" и делал его главным...

Что решили добавив id к первому индексу (использовать один для проверки 2х значений еще "легче", и все исправилось). Но, главную проблему это не решило, и они как-то связаны эта и "моя" из предыдущего топика.

p.s. Просто подозреваю, что проблема базы тут не первый год... (добавили id в индекс года три назад, а вообще база работает около 10)
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38056895
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13,

Чем в случае с ногами то закончилось?
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38057093
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Речь об одной и той же таблице вобеих топиках?
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38057959
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойTesla13,

Чем в случае с ногами то закончилось?Фактически ничем, это продолжение. Сейчас пытаются оптимизировать структуру, размер (поля лишние убрать)... думают что это из-за размера таблицы.
В данный момент все работает, или вернее не работает также как было (и кстати хинт от DrGonzo помог только на определенных данных... я потом с другими данными и на запросе с хинтом тормоза "ловил". как временное решение убрали DESC из запросов... немного не то, с начала, а не с конца, но 80% нужд перекрывает, не у всех больше 100 нужных записей, а если больше то можно период дополнительно задавать... ну и 100 на 500 увеличили)

АнатоЛойРечь об одной и той же таблице вобеих топиках?Да.
И таблица и запросы и индексы и типы, все реально "as is", и те же самые по соответствиям, единственное, что позволил себе так это имена подсократить... (но соответственно без одного имени на разные поля... просто не думаю, что было бы понятнее если бы вместо ext/id я приводил бы extid_user_by_trans_codе и user_by_trans_codе_id а писать упаришься, да еще опечаток наделаешь)
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38058193
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть некоторые трудности (и даже баги) у информикса с расчетом зависимости стоимости сортировки от ширины таблицы. И в общем-то все просто:

select * from t
where a=5 and b>7
order by a,b desc

нужен индекс x1 on t(a,b) и хинт /*+first_rows index(t x1)*/



select * from t
where a=5
order by b

нужен индекс x1 on t(a,b) и хинт /*+first_rows index(t x1)*/



select max(b) from t
where a=5

нужен индекс x1 on t(a,b) и хинт /*+first_rows index(t x1)*/




про "слияние" индексов, работает это просто: фильтруем по первому, выбрали 100 записей, фильтруем по второму 50000000/1500, перемножаем (hash) ищем совпадающие rowid, на таких объемах индекс по двум полям быстрее чем hash

Вы планы запросов показывайте и сами учитесь читать.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38058210
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще есть параметр DS_NONPDQ_QUERY_MEM, позволяющий сортировки вынести в память
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38058333
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13,
1. у вас в первом топике до сих пор не видно, решилась ли проблема с дубликатами в поле, которое является первичным ключом... Может он отлючён?

2. У вас доступ к БД sysmaster есть?
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38058342
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13Как мне кажется (откуда вообще сомнения)

Не вижу смысла в эффективности и практической полезности вашей деятельности вообще: админского доступа к БД нет, но решать проблемы, тесно связанные с правами админа пытаетесь...

Вам хочется порассуждать на теоретическую тему или решить практическую проблему?

Tesla13Но, главную проблему это не решило, и они как-то связаны эта и "моя" из предыдущего топика.


В чём главная проблема то?
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38058691
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойTesla13,
1. у вас в первом топике до сих пор не видно, решилась ли проблема с дубликатами в поле, которое является первичным ключом... Может он отлючён?

2. У вас доступ к БД sysmaster есть?Дубли удалили. Вряд ли отключен, если бы так то выборка по нему делалась бы сканированием, а это на 50 мл. таблице дело долгое, не 0,016 мсек. точно. Но может временами и отключают (ну на тех. работы к примеру, не знаю. я на фоксе например индексы отключал для массовых вставок, а после пере-индексировал, быстрее вставки на подключенных работало. может тут что-то похожее делают. откуда то же дубли взялись).
Доступа нет. ;(

АнатоЛойВам хочется порассуждать на теоретическую тему или решить практическую проблему?Мне бы экспертную оценку... а решить я ничего не могу, даже если бы знал как и из-за чего.

АнатоЛойВ чём главная проблема то?Денег не хватает... хотя, если подумать и это не главная. :))

Если серьезно, то я с этими проблемами не могу сделать как надо то, что нужно. И объяснить начальству "в чем проблема" тоже не могу. Аргументированно не могу. А у бд. админов проблем нет, им пофигу. Работает же как то.
Не знаю уж в чем тут главная проблема... наверное в том, что мне не пофигу. Но это вообще то оффтопик.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38058704
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойНе вижу смысла в эффективности и практической полезности вашей деятельности вообще: админского доступа к БД нет, но решать проблемы, тесно связанные с правами админа пытаетесь...Тут ко всему прочему еще и привычка. :) Долгое время проработал админом MSSQL-я. Хотя, за то время я "напрограммировал" примерно столько же сколько при работе программистом.

p.s. Еще один оффтопик. :) Лучше не спрашивайте.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38058721
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Дениси еще есть параметр DS_NONPDQ_QUERY_MEM, позволяющий сортировки вынести в памятьБоюсь памяти не хватит. (можно посчитать сколько она примерно "весит", но завтра)
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38058831
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13 А у бд. админов проблем нет, им пофигу. Работает же как то. я кстати тоже не понял в чем проблема.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38058952
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторя с этими проблемами не могу сделать как надо то, что нужно.

И что это - "то, что нужно"?


Давайте последовательно, коротко и ясно.

1. Не было составного индекса.
2. Проблема: "Всё "очень тормозило"
3. Админы добавили составной
4. Теперь "не тормозит", правильно?

5. Вы сомневаетесь, что причиной улучшения ситуации стал отнюдь не новый индекс.

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

Экспертная оценка:
1. Да, действительно, не факт, что новый индекс стал причиной (особенно для нас :) ).
Может после создания составного индекса админы обновление статистики запустили не такое как всегда или вообще в первый раз.

2. более-менее уверенно проверить можно практически:
1) удалить индекс, запустить запрос, попросить админов дать файл с планом запроса.
2) создать индекс, запустить запрос, попросить админов дать файл с планом запроса.
3) сравнить планы, долго думать...

А рассуждать теоретически довольно накладно - слишком много предположений...
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38059298
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денися кстати тоже не понял в чем проблема.Я пишу программу, программа использует базу (зависит от нее), заказчик (руководство) не понимает почему не сделано так как они хотят. Мне нужно либо объяснить, и сказать, что для этого нужно (админ либо не способен либо не хочет), либо уволится. (хотя надеюсь до этого не дойдет)
Так понятнее?

АнатоЛой5. Вы сомневаетесь, что причиной улучшения ситуации стал отнюдь не новый индекс.Типа того. Или если помогло все таки изменение индекса, то сомневаюсь, что с базой было все в порядке еще тогда "до меня"... ну не верю, что будет ощутимый прирост скорости от такого изменения при нормальной работе, а вот если оптимизатор/статистика неверно определяет "вес" и что использовать первым, то вполне.

Аргумент админа "тебя не было и все работало, ни у кого претензий не было, а тут раз и все плохо...". А вот эта не логичность показывает что не все было так хорошо как он говорит.
Со своей стороны вижу кучу нелогичности в работе базы. Это не первая и не вторая. Но о всех, тем более о которых знаю еще меньше чем про это не охота писать.

АнатоЛой2. более-менее уверенно проверить можно практически:О... если бы кто то чего то делал вот так, практически, я бы второй раз сюда не писал.
А пока все похоже на шаманские действия, типа "а че вы хотите? таблица большая... ну давайте ненужные поля уберем, вот структура, и что убираем, кому нибудь нужно убираемое?". (и тут обращаю внимание на дублирующийся индекс, он что места не занимает, зачем нужен?)

АнатоЛойА рассуждать теоретически довольно накладно - слишком много предположений...Это да, но ИМХО, все вполне конкретно. Ответ на вопрос, конкретизирую - "будет ли ощутимый выигрыш по времени (с около минуты как говорят старожилы) до пары секунд как сейчас, от составного индекса взамен пары"?
В MSSQL я бы сказал, что это невозможно. А с информиксом может это нормально? Я же не знаю, вот в той теме уже предположил неадекватность информикса, а оказалось что скорее админа, т.что...
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38059445
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13Журавлев Денися кстати тоже не понял в чем проблема.Я пишу программу, программа использует базу (зависит от нее), заказчик (руководство) не понимает почему не сделано так как они хотят. Мне нужно либо объяснить, и сказать, что для этого нужно (админ либо не способен либо не хочет), либо уволится. (хотя надеюсь до этого не дойдет)
Так понятнее?

что вам мешает сделать как они хотят? При чем тут вообще информикс?
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38059855
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13Будет ли ощутимый выигрыш по времени (с около минуты как говорят старожилы) до пары секунд как сейчас,
от составного индекса взамен пары.

Очуметь, Tesla13, нельзя ли изъясняться поконкретней.
Т.е. ситуация такая. Вы хотите понять, что лучше из пары индексов
а) (ext, id) и (id)
или
б) (ext) и (id)
при описанных вами условиях в первых постах?
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38059857
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денисчто вам мешает сделать как они хотят? При чем тут вообще информикс?Прочитай эту тему.
Или кратко - время исполнения запроса варьируется от 15мсек до бесконечности... в зависимости от, какие значения/критерии поиска задать в программе.
И мне как то неоткуда взять инфу заранее и предупредить юзера "Внимание! Поиск Агента с кодом 7 'повиснет'! Не хотите вместо него поискать Агента с кодом 127?".

Причем информикс? Проблемы с ним, или вернее с базой/настройкой/индексами.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38059876
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойTesla13Будет ли ощутимый выигрыш по времени (с около минуты как говорят старожилы) до пары секунд как сейчас,
от составного индекса взамен пары.

Очуметь, Tesla13, нельзя ли изъясняться поконкретней.
Т.е. ситуация такая. Вы хотите понять, что лучше из пары индексов
а) (ext, id) и (id)
или
б) (ext) и (id)
при описанных вами условиях в первых постах?Да. Это мне поможет.
И желательно насколько лучше (т.к. прирост от индекса ext, id при поисках по обоим очевидно будет... теоретически, т.к. по моему опыту с MSSQL он практически незаметен).
Т.е. если тут резерв ускорения на "на порядок", в условиях нормальной работы базы (что я проверить никак не могу, за неимением таковой).
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38059928
Ikir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13Или кратко - время исполнения запроса варьируется от 15мсек до бесконечности... в зависимости от, какие значения/критерии поиска задать в программе.

И это логично. Представьте, что из 50 000 000 записей у вас: 40 000 000 записей Агента с кодом 7 и 100 записей с Агентом 127.
Вы хотите , чтобы запрос с использованием этого индекса у вас отрабатывал одинаково для этих Агентов? Так не бывает.

PS Думаю, что для Агента 7 при таком раскладе оптимизатор вообще выберет SEQSCAN.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38060231
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13Или кратко - время исполнения запроса варьируется от 15мсек до бесконечности... в зависимости от, какие значения/критерии поиска план запроса стабилизируй хинтами.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38060440
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисTesla13Или кратко - время исполнения запроса варьируется от 15мсек до бесконечности... в зависимости от, какие значения/критерии поиска план запроса стабилизируй хинтами.
Денис, как всегда, практичен!

Если уже есть индекс по (ext, id) зафиксируй, как писал Денис выше, какой индекс использовать.
К сожалению, есть случаи, когда хинты буду проигнорированы, но в твоей ситуации (без доступа к папке пользователя на серваке или sysmaster) без админа ты об этом можешь только догадываться...

Ну а насчёт в сколько раз будет лучше, это нужно мозги на полчаса приложить - а мотивации никакой :)
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38060948
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tesla13Я пишу программу, программа использует базу (зависит от нее), заказчик (руководство) не понимает почему не сделано так как они хотят. Мне нужно либо объяснить, и сказать, что для этого нужно (админ либо не способен либо не хочет), либо уволится.

Интересная тема обсуждалась ранее Explain при отсутствии физического доступа к серверу - как?
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062047
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IkirИ это логично. Представьте, что из 50 000 000 записей у вас: 40 000 000 записей Агента с кодом 7 и 100 записей с Агентом 127.Это не логично. Представьте, что в запросе всегда (!), стоит FIRST 100, больше не надо, и плевать совершенно 200 записей там или миллионы... во всяком случае в MSSQL. Выборка по индексу, какая разница сколько записей в базе, если это не фулл скан.

Журавлев Денисплан запроса стабилизируй хинтами.Пытался (в прошлой ветке подсказали), как оказалось тоже не работает, вернее, работает под один вариант условий/данных, под другой нет.

АнатоЛойЕсли уже есть индекс по (ext, id) зафиксируй, как писал Денис выше, какой индекс использовать.Блин, да нафига? Тема поднята не для "КЭП-ов", чтобы им покуражится, а выяснить, не было создание этого самого индекса "первой ласточкой" проблем базы.

victor16Интересная тема обсуждалась ранее Explain при отсутствии физического доступа к серверу - как? Никак. Если бы у меня была рабочая папка на сервере, юзерская как там написано... но я как бы с того и начал, что ничего нет, кроме DNS, а он работает по имя сервера + порт.

p.s. Ну да ладно, все с вами ясно.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062143
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FIRST 100 оптимизатор запроса не замечает, обрабатывается только на стадии выполнения, нужен хинт first_rows
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062145
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Пытался (в прошлой ветке подсказали), как оказалось тоже не работает, вернее, работает под один вариант условий/данных, под другой нет.
в прошлый раз у вас было подозрение на плохой индекс, зациклившийся, все нормально с индексом? Начните новую тему с запросом который долго работает.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062240
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денисв прошлый раз у вас было подозрение на плохой индекс, зациклившийся, все нормально с индексом? Начните новую тему с запросом который долго работает.Как я уже повторял, я никогда не повторяюсь! ... ->

Уже нет подозрений, уже есть уверенность, корефаны.. т.е. тфу, корифеи местные уже с этим "разбираются" (скорее пытаются "замолчать" проблему т.к. поиск "с конца" нужен только мне... моей задаче), пока из всего сделанного убрали явный глюк - дубли в ключе.
Во всяком случае местные "гуру" не смогли сделать этот запрос адекватным, хотя у них есть и доступ и планы и вообще это их работа. Поэтому однозначно - проблема есть.
Зачем начинать новую если можно вернутся к прошлой. С этой точки зрения с запросом показывающем проблему (одним из, но самых понятных) НИЧЕГО не изменилось.

Вопрос этой ветки уже не в определении проблемы, не в советах "куда потыкать палочкой и посмотреть, что изменилось, возможно исправилось", а в определении когда это началась... от этого зависит не решение, а определение если грубо "кто виноват, и что с ним делать".

++
Пожалуйста, не меняйте тему, ИМХО я очень ясно выразился, что хочу узнать. И нужны не "практические тыканья палочкой" в решении конкретной проблемы, а академические знания - "что именно должно быть в такой ситуации на нормально(!) работающем/настроенном информиксе". Не было ли создение дублирующего индекса "затычкой" вместо решения проблемы.
??? Доступно же. Не делайте вид что не понимаете "сворачивая тему с пути".
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062271
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13++
Пожалуйста, не меняйте тему, ИМХО я очень ясно выразился, что хочу узнать. И нужны не "практические тыканья палочкой" в решении конкретной проблемы, а академические знания - "что именно должно быть в такой ситуации на нормально(!) работающем/настроенном информиксе". Не было ли создение дублирующего индекса "затычкой" вместо решения проблемы.
??? Доступно же. Не делайте вид что не понимаете "сворачивая тему с пути".я не понимаю какой запрос тормозит.










Зачем составные индексы в запросах на писано мной тут 13550277
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062550
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денися не понимаю какой запрос тормозит.Это в прошлой теме. Но если кратко, то - любой... Если есть DESC в ORDER BY, при разных вариантах условия с разными данными и даже с хинтами, но всегда находится такое значение в условии на котором запрос "вешается".
+ ORDER на пробах делался для 2-х вариантов, которые имеют смысл, по дате выполнения (требуется) и по ключу (counter, чисто потестить). Собственно на пробах по ключу и выявил дубли.

Журавлев ДенисЗачем составные индексы в запросах на писано мной тут 13550277 Если, если, если... у информикса, что оптимизатора/статистики нет? Хотя, это неважно.
А можно дать конкретный ответ? Без если.
Учитывая что -
а) Не могу повлиять на всех чтобы писали с "локальной оптимизацией". (т.е. что даст это ваше "если - нужно"?)
б) Поздно. Это не делается, начинается, а уже так есть... и менять не будут.
с) Не соответствует цели темы. Опять практическое "как надо бы...", а не исследованные "почему так".
Тем более что то мне подсказывает для конкретного (описанного) случая, должно быть несколько по другому. Когда для ext практически всегда есть только 1 значение (пара ext + id всегда уникальна, но по ext теоретически (не практически)... возможно 1500 повторов, по количеству id агентов)... в общем по логике выборка тут всегда должна идти по первому ext, а используется или нет второй уже неважно, даже в худшем случае 1500 значений отфильтровать... ну, не тянет на минуту. Т.е. если так было (опять не повторяюсь...) значит иформикс формировал "кривой план", брал не тот индекс главным, или делал еще чего то не нужное для работы (лазил на порносайты например).
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062563
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев ДенисЗачем составные индексы в запросах на писано мной тут 13550277 И вообще то я спрашивал вовсе не "зачем они нужны", зачем я как бы и так знаю... как бы вам это было не удивительно.
"Имеет ли смысл вот это" и "это в принципе нужно для"... разные вещи, однако.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062592
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очень длинно пишите, я не читал, я готов потюнить один, два, 100 запросов, поотдельноси, все тюнить не буду.
статистика в информиксе есть, есть ли она в вашей бд и насколько свежая, я пока не понял.
если есть order by, и таблица широкая, высока вероятность что информикс выберет не тот индекс, воркэраунд хинтовать +index
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062752
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Денисочень длинно пишитеВынужден. Как и повторения. Не понимают`с. Пытаюсь объяснить.
Журавлев Денисесли есть order byНу вот опять, про "order by" вопрос был в прошлой ветке, в этой про индексы.

p.s. Коротко? = понятно?
p.p.s. order by/desc я с себя "спихнул", разберутся, не разберутся, это уже не моя ответственность. Моя теперь - когда это началось. И, мои ли запросы "порушили базу", для меня очевидно (запросов на запись/прав на запись у меня нет, т.что...), а если искомые данные способны "завалить" базу... то нафиг такую базу (или скорее админа).
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062759
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13вопрос был в прошлой ветке, в этой про индексы.
а вы понимаете что запрос
where a=5 order by b desc можно выполнить по индексу, без сортировки, отдав первые 100 строк моментально? И не важно сколько строк a=5 тысяча или милиард?
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062847
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев Дениса вы понимаете что запрос
where a=5 order by b desc можно выполнить по индексу, без сортировки, отдав первые 100 строк моментально? И не важно сколько строк a=5 тысяча или милиард?А то! Я понимаю, а вот база почему то нет. ... и блин, опять не "повторяюсь" но, ситуация такая, что where a=5, 6, 127, и т.д. для еще кучи значений a работает 15 мсек, а 7 (не только) почему то больше часа (больше не ждал).
Ставишь туда хинт FIRST_ROW и значение 7 отрабатывает за 32 мсек... а вот 127 тут же становится больше часа.

Вопрос первой ветки как раз был этом... что я то как раз понимаю что это не нормально (правда начал я с ext LIKE 'R%' но такая конструкция тоже использует индекс... в отличие от например ext LIKE '%R%').

p.s. Зачем это очередное отвлечение внимание от собственно вопроса?
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062868
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13, Вам нужно знать, имеет ли смысл составной индекс.

Этот вопрос, исходя из обсуждения, можно задать в двух вариантах:

1. если запрос с "ext = x and id = y" будет выполняться с использование индекса (ext, id), насколько это будет эффективнее чем
с использованием индекса (ext)?

Не стесняясь, повторюсь: если даже теоретически прикинуть "в сколько раз будет лучше, это нужно мозги на полчаса приложить - а мотивации никакой :)" (я).

У вас в наличии сейчас и составной индекс и оба простых? Так попробуйте через хинты протестировать все три варианта, только влияние кэшрование не забудьте учесть, и будет вам счастье практическое, а не теоретическое.

2. есть три типа запроса
1) "ext = x and id = y" (30% запросов);
2)"ext = x" (30% запросов);
3) "id = y" (30% запросов).
Все запросы выполняются с условиями отбора первых 100-200 записей.
Распределение и типы данных приблизительно описаны в первых двух топиках.
Разработчик обеспечит выбранные в результате изысканий тексты запросов и администратор подберёт оптимальный сбор статистики.
Что будет эффективнее:
а) иметь наличие двух индексов: (ext, id) и (id)
или
б) иметь наличие двух индексов: (ext) и (id).
Да на таких изысканиях можно скромный курсач защитить...



Если же вернуться к проблеме.

Есть проблемы в теоретической оценке:
- разные версии Informix (а вашу точно мы тоже не знаем до сих пор) - даже минорные - имеют разные возможности по оптимизации и баги;
- мы ничего не знаем про то, как у вас собирается статистика, что немаловажно при выборе индекса оптимизатором;
- про настройки сервера;
- про переменные окружения;

Решение проблемы "с одними параметрами запрос выполняется быстро, а с другими - немеряно времени" зависит не только от наличия индекса.

Создание индекса (ext, id) админами могло улучшить ситуацию не только потому, что этот индекс лучше, а потому что оптимизатору на вход стала поступать новая информация:
0) раньше для запроса "ext = x and id = y" выбирался таки индекс по (id) , а не ext или "скрещивание (ext) и (id)". Почему: см. выше про версию информикса и статистику;
1) админы статистику заодно в процесс обновили не так как обычно;
2) ....

Местным гуру на порядок легче рассуждать: у них возможности навести резкость в постановке задачи и её окружении больше...
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062904
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13, админы обычно отвечают за производительность работы БД при некотором известном/постоянном объёме запросов, разновидности этих запросов и объёме извлекаемых данных.
В какой-то момент появились вы с новыми типами запросов, новым объёмом извлекаемых данных.
Если "появление" вашей программы в качестве клиента не согласовано (какие таблицы, какие запросы, как много тянете) с админами, они даже теоретически не могут превентивно отвечать за производительность БД. Они могут только реагировать на проявившиеся проблемы в работе.

И на ваш теоретический вопрос, как должно было быть при нормальной работе админов: как угодно, если ваши запросы начали тормозить, значит они для сервера внове, и нет на практике "нормально настроенного сервера БД"...
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062955
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13А то! Я понимаю, а вот база почему то нет. ... и блин, опять не "повторяюсь" но, ситуация такая, что where a=5, 6, 127, и т.д. для еще кучи значений a работает 15 мсек, а 7 (не только) почему то больше часа (больше не ждал).
Ставишь туда хинт FIRST_ROW и значение 7 отрабатывает за 32 мсек... а вот 127 тут же становится больше часа.
захинтовать +index
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38062992
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
АнатоЛойТак попробуйте через хинты протестировать все три вариантаПробовал, сейчас разницы нет, естественно если не задать хинт {+INDEX(trans id_ix)}, а искать по обоим полям, тут на несколько мсек дольше. Но что это дает? Это хинт, не приказ, а поставить AVOID_INDEX(ext) то не слишком ли? Самостоятельно обеспечить перебор вместо проверки.

АнатоЛойа вашу точно мы тоже не знаем до сих пор Не повторяться, не повторятся... эх, сорвалось -
Tesla13Что знаю, Informix 11 , количество записей в интересующей таблице 44460537, полей 60, индексированы 15, нужные мне поля (по которым условие/сортировка) в том числе.
Проблема в том, что выбирая небольшое количество записей (100) в паре с сортировкой (нужны последние записи) запрос "виснет"... ждал около часа, после "снял".

АнатоЛойновым объёмом извлекаемых данных.100 строк, как хотелось, по запросу юзера (не пулемет же он), не считаю серьезным "объемом".

АнатоЛойи нет на практике "нормально настроенного сервера БД"...А вот MSSQL (с ностальгией) ставишь, по умолчанию, ничего не трогая, и оно уже нормально настроено...

P.S. Похоже пора "завязывать", работать просто некогда с этой без результативной перепиской.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38063004
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13, не равняй MS SQL и Informix при прочих неравных (админы, БД, клиенты...).
Появление нового индекса в БД (Informix) без сопутствующих движений - вполне себе причина поломать работу системы.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38063016
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13Что знаю, Informix 11
мдя. 11.10, 11.50, 11.70? не говоря уже про номер FixPack...
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38063037
victor16
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tesla13А вот MSSQL (с ностальгией) ставишь, по умолчанию, ничего не трогая, и оно уже нормально настроено...

да в общем-то, в Informix-e тоже самое... если ничего не трогать ... потрогать тоже можно за разные места, также как в автомобиле, нажать на газ - он поедет, а уж если на тормоз ... извините
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38063526
Tesla 13,

Есть предложение не изучать предмет теоретически, а посмотреть на распределение в sysdistrib просто вот прямо.

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

И сделайте, если можете, UPDATE STATISTICS HIGH хотя бы для одного этого столбца.

Ещё интересней сравнить sysdistrib до и после апдейта.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38063610
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13Журавлев Дениса вы понимаете что запрос
where a=5 order by b desc можно выполнить по индексу, без сортировки, отдав первые 100 строк моментально? И не важно сколько строк a=5 тысяча или милиард?А то! Я понимаю, а вот база почему то нет. ... и блин, опять не "повторяюсь" но, ситуация такая, что where a=5, 6, 127, и т.д. для еще кучи значений a работает 15 мсек, а 7 (не только) почему то больше часа (больше не ждал).

ну если у вас 40M записей с кодом 7, и по 10 записей where a=5, 6, 127, то естественно, что разница будет принципиальная.
Во втором случае Информикс вообще откажется использовать индекс, будет сплошным перебором ковырять.

Tesla13Ставишь туда хинт FIRST_ROW и значение 7 отрабатывает за 32 мсек... а вот 127 тут же становится больше часа.


Потому что при FIRST_ROW информик предпочитает вложенные циклы, а без него - построение хешей. Если у вас практически все записи имеют значение 7, то первые 101 цикл дадут вам 100 выходных записей. А 127 ваше встретится где-то в конце всех циклов.

Элементарно, Ватсон.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38063801
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Яковлев ПавелЕсть предложение не изучать предмет теоретическиЕсть предложение не давать "предложений" если это не ответ по теме, предлагая то, что сразу сказано сделать невозможно (именно на этот случай сказано).
Да и вообще смысл влезать не свою область? Шофер не должен быть механиком, но способен определить/поднять проблему если вместо второй скорости включается задняя. И сказать механику... если тот в этом "не видит проблемы, и - 'до тебя машинка ездила, и никто не жаловался'", то сменить механика.

Выбегаллону если у вас 40M записей с кодом 7, и по 10 записей where a=5, 6, 127, то естественно, что разница будет принципиальная.
Во втором случае Информикс вообще откажется использовать индекс, будет сплошным перебором ковырять.Нда, и это прямо под ответом на сообщение от Журавлева Дениса...
Начинаю понимать, что был глуп... это надо же, спрашивать в таком месте, где обитают такие... умные люди.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38063850
Ikir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13Есть предложение не давать "предложений"
Начинаю понимать, что был глуп... это надо же, спрашивать в таком месте, где обитают такие... умные люди.

Есть предложение - не задавать здесь вопросов, ответы на которые Вы не в состоянии ни понять, ни сделать.
Проследуйте в техподдержку MSSQL.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38064323
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IkirВы не в состоянии ни понятьА кого понимать? Тебя или Дениса? Вы говорите диаметрально противоположные вещи...

p.s. Переход на личности это еще один отличительный признак ума здешних форумчан?
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38064389
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla, давайте поступим проще, дабы не отклоняться от темы.

1) Вопрос: могли ли регулярно или нерегулярно тормозить запросы с "WHERE ext = ... и id = ..." при наличии только индексов (ext) и (id)?

Ответ: могли.

Основной вариант:
выбор оптимизатором Informix неэффективного плана запроса (индексов).

Возможные причины возникновения основного варианта:

а) обновление статистики не учитывает потребность в обработке таких запросов;
б) в запросе присутствуют дополнительные части, влияющие на выбор плана: ORDER BY, FIRST 100, перечень возвращаемых полей, которые нам не видно из постановки задачи;
в) параметры оптимизации запроса (параметры сервера, параметры сессии) "не соответствуют" типу запроса;
г) природа данных такова, что в зависимости от параметров эффективны разные индексы (то по (ext), то по (id)) но из-за кеширования запросов (и планов запросов) используется один и тот же план.

Что нужно было делать:
1. Тестировать запросы
2. "Согласовывать" с админами, раз уж админы отвечают за структуру и обслуживание БД (вау!).

2) Вопрос: могло ли пропасть торможение запросов с фильтрацией по равенству двух полей после добавления индекса (ext, id)?
Ответ: могло.
Основной вариант:
при выборе оптимизатором Informix стал использовать именно его как наиболее подходящий (более стабильный в оценках независимо от значений фильтрации) индекс.

Возможные причины возникновения основного варианта:
см. ответ на вопрос 1.

3) Вопрос:
Насколько эффективнее должно быть использование составного индекса против простых?
Встречный вопрос к постановщику: исходя из предыдущих ответов, ответ "насколько именно" всё ещё интересует?
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38064396
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойа) обновление статистики не учитывает потребность в обработке таких запросов;

читать как
АнатоЛойа) существующие процедуры обновления статистики не учитывают потребности в обработке таких запросов
(причём есть варианты, когда только изменение сбора статистики не решит проблему);
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38064560
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛой1) Вопрос: могли ли регулярно или нерегулярно тормозить запросы с "WHERE ext = ... и id = ..." при наличии только индексов (ext) и (id)?

Ответ: могли.

Основной вариант:
выбор оптимизатором Informix неэффективного плана запроса (индексов).


Основные ошибки ТС:
1) предположение, что СУБД Informix работает так же, как MS SQL;
2) предположение, что СУБД Informix работает по логике, которую предполагает ТС на опыте общения с МС СКЛ, а не так, как собственно, эта СУБД спроектирована и разработана.

Tesla13, надеюсь, рассеял ваши "смутные сомнения что причина в чём-то другом"...
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38065159
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13Нда, и это прямо под ответом на сообщение от Журавлева Дениса...
Начинаю понимать, что был глуп... это надо же, спрашивать в таком месте, где обитают такие... умные люди.вот самое смешное что нет противоречия. В зависимости от того что вы хотите, все строки или первые 100, эффективные планы будут разные.

И в информиксе статистика хранится гениально, она учитывает исключения в глистограммах (этого порою не хватает в оракле).
Верная статистика у вас или нет можно в принципе оценить и без плана, с помощью estimated rows и реального количества.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38065219
Tesla13Яковлев ПавелЕсть предложение не изучать предмет теоретическиЕсть предложение не давать "предложений" если это не ответ по теме, предлагая то, что сразу сказано сделать невозможно (именно на этот случай сказано).
Да и вообще смысл влезать не свою область? Шофер не должен быть механиком, но способен определить/поднять проблему если вместо второй скорости включается задняя. И сказать механику... если тот в этом "не видит проблемы, и - 'до тебя машинка ездила, и никто не жаловался'", то сменить механика.

Получение данных из sysdistrib (а я предлагал только получение, а с их анализом тут бы могли помочь) позволило бы понять сколько записей в таблице для какого кода и на основании это доходчивее объяснить вам почему оптимизатор так себя ведёт.

Так же вы путаете от непонимания sysmaster (отдельная системная база данных про которую вы писали что у вас нет доступа) и sysdistrib - таблицу существующую в каждой базе (и ваша не исключение) и помогающую планировать запрос.

Tesla13Выбегаллону если у вас 40M записей с кодом 7, и по 10 записей where a=5, 6, 127, то естественно, что разница будет принципиальная.
Во втором случае Информикс вообще откажется использовать индекс, будет сплошным перебором ковырять.
Нда, и это прямо под ответом на сообщение от Журавлева Дениса...
Начинаю понимать, что был глуп... это надо же, спрашивать в таком месте, где обитают такие... умные люди.
Самокритика, да ещё так точно описывающая ситуацию, всегда приветствуется в этом форме.

СУБД Informix такова не умным людям с ней тяжело. А тот, кто истерит вместо сотрудничества с людьми которые тратят своё личное время в попытке помочь, действительно рядом с ними будет ощущать себя глупым.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38065439
Выбегалло
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойTesla, давайте поступим проще, дабы не отклоняться от темы.

1) Вопрос: могли ли регулярно или нерегулярно тормозить запросы с "WHERE ext = ... и id = ..." при наличии только индексов (ext) и (id)?

Ответ: могли.

Основной вариант:
выбор оптимизатором Informix неэффективного плана запроса (индексов).

[

Запасной вариант: неравномерное распределение ext И id. Если у вас на таблицу в 40 миллионов записей 39 миллионов содержат ext=0 и другие 39 миллионов содержат id = -1, то индексы на ext и id вам мало помогут при запросе select * where ext = 0 and id = -1
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38065680
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВыбегаллоЗапасной вариант: неравномерное распределение ext И id. Если у вас на таблицу в 40 миллионов записей 39 миллионов содержат ext=0 и другие 39 миллионов содержат id = -1, то индексы на ext и id вам мало помогут при запросе select * where ext = 0 and id = -1
В первом посте ТС давал описание природы данных: ext - "почти уникален", id - всего 1 500 уникальных значений.
Поэтому этот вариант я не рассматривал.
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38065684
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АнатоЛойВ первом посте ТС давал описание природы данных: ext - "почти уникален", id - всего 1 500 уникальных значений.
Поэтому этот вариант я не рассматривал.
Кстати, ещё вопрос при таком распределении, какой индекс эффективнее (ext, id) или (id, ext).
Но разница уж точно не должна быть ощутимее, чем на десяток процентов...
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38093111
Tesla13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Журавлев ДенисВ зависимости от того что вы хотите, все строки или первые 100, эффективные планы будут разные.Я вроде нигде ни разу даже не намекал на "все строки", их в этой таблице (размер указывал) просто нереально вытащить, даже с супер оптимальным планом.
Всегда было про первые 100/последние 100 при указании DESC, с моей стороны по крайней мере.

Но да ладно. "Поднял" ветку по другому поводу, сообщить, что дело наконец сдвинулось с мертвой точки. т.к. глюки пошли и у других, в более очевидной форме.
Так "поймали" ситуацию когда выбирается по условию (время, юзер, и т.д.) значение ключа для последующего изменения записи (настроено так, что изменять можно только по ключу в where), а последующий апдейт с id=xxx говорит - запись не найдена, т.е. в выборке с другим условием значение ключа есть, а операции с этим значением не работают...), подозреваю, что все те -1 в ключе, что "задваивали" на деле были другими значениями... и где то с ними "разрыв шаблона", типа в индексе -1, в базе реальное значение, или наоборот...

Принято решение на праздниках (минимум активности предположительно) остановить базу(/предприятие) на 3 дня на "технические работы", пере индексацию и т.д. (не знаю, что они там вкладывают за смысл в фразу "технические работы", я с ними, как и тут похоже, на разных языках общаюсь).
... Тут надо бы написать "надеюсь на лучшее", типа исправят, и сделаю как надо, но мне уже по фигу, т.к. пока шла "война" нашел другую работу, после праздников буду увольняться ...
...
Рейтинг: 0 / 0
Имеет ли смысл составной индекс ...
    #38137265
DrGonzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tesla13В таблице есть 2 индекса (вообще то больше, но там все ясно)
create index ext_id on trans (ext, id) и create index id on trans (id)

В их необходимости сомнений нет, в смысле поиски идут по обоим, сомнение в "довеске" id в первом. Т.е. насколько этот "довесок" используется информиксом?
Не проще ли обойтись простыми
create index ext on trans (ext) и create index id on trans (id)

Запросы используют насколько могу судить все варианты в примерно одинаковой мере...
т.е. "WHERE ext = ... AND id = ..." (примерно в 30% случаев) и "WHERE ext = ..." (примерно в 30% случаев) и "WHERE id = ..." (примерно в 30% случаев, хотя тут чаще не "чистое условие", а в паре с временем например, "чистое" по количеству возвращенного не пройдет)

Причем:
поле ext строка "с претензией на уникальность" т.е. там и гуиды в строках, и свои от времени например рассчитанные значения... но все таки не уникальные (а каких то значений может быть много).
поле id имеет всего примерно 1500 (int-овых) значений, что на 50-ти миллионную таблицу не так уж много для индекса.

Ну, вот, в MSSQL я бы сделал 2 простых... он прекрасно работает и при "спаривании" в условии разных индексов. А в информиксе? Мне говорят "это для быстродействия" (тех самых первых 30% запросов), и типа когда он был не составным, а обычным (как считаю правильнее), все "очень тормозило"... НО!!! Меня не покидают смутные сомнения, что проблема в чем то другом.
Очень уж похоже на -
p.s. "Ноги" некоторым образом "растут" отсюда , если кому интересно.
но тут без возможности даже проверить.

Всю тему не читал, но хочу вставить свои пять копеек на тему, почему индекс create index ext_id on trans (ext, id) может быть лучше / быстрее, чем create index ext on trans (ext) .

Как уже отметили, в поле ext может быть много дубликатов. Для индекса это будет означать, что на уровне листьев будет запись типа [ключ,rowid1,rowid2 ... rowidn]. При удалении или вставке, хождение по такому списку и его модификация будут более ресурсоемкими, чем если в ситуации [ключ,rowid]. Т.к. во втором случае соотв. ключ просто будет помечен, как удаленный и будет исключен из структуры индекса позже в процессе работы btree cleaner, а в первом будет foreground write.

Замена индекса на составной, с дополнительным полем сделает набор ключей в индексе более дисперсным, а следовательно количество/длину упомянутых выше списков rowid'ов меньше/короче.
...
Рейтинг: 0 / 0
56 сообщений из 56, показаны все 3 страниц
Форумы / Informix [игнор отключен] [закрыт для гостей] / Имеет ли смысл составной индекс ...
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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