powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Индексы на ключи
25 сообщений из 61, страница 1 из 3
Индексы на ключи
    #33913299
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый!

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


Евгений Фадеев
1. Индекс на первичный ключ (по умолчанию) - некластерный. Можно такое поведение как-то изменить?Создать самому? Но два момента: записи таблицы упорядоченными по индексу будут только в момент постройки индекса, далее из-за DML операций они таковыми уже не будут, и самое главное это нафиг не надо.


Евгений Фадеев2. Можно ли выбросить некоторые индексы на внешние ключи (например в ситуации, когда таблица длиной в несколько десятков миллионов записей ссылается на таблицу длиной в десяток записей)? Или с этим нужно жить (либо он сам такие индексы пользовать не будет, либо ему нужно хинтами это задавать)?Выбросить нельзя. Такие индексы (на внешние ключи) он использовать будет, например при удалении из справочника, при соединении со справочником. Зачем их не использовать? Зачем хинты?
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913466
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ФадеевДень добрый!

Насколько я понял из наблюдений за сервером и чтения форума (я с Информиксом совсем недавно) - он автоматически строит индексы на ключи (первичные и внешние). Соответственно у меня несколько вопросов:
1. Индекс на первичный ключ (по умолчанию) - некластерный. Можно такое поведение как-то изменить?
Создайте индекс раньше, чем первичный ключ.
Еще есть оператор alter index
Евгений Фадеев
2. Можно ли выбросить некоторые индексы на внешние ключи (например в ситуации, когда таблица длиной в несколько десятков миллионов записей ссылается на таблицу длиной в десяток записей)? Или с этим нужно жить (либо он сам такие индексы пользовать не будет, либо ему нужно хинтами это задавать)?
Внешнего ключа без индекса не бывает.
Использовать индекс или нет, решает оптимизатор.
Почему вы думаете, что индекс вам помешает?
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913470
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ФадеевДень добрый!

Насколько я понял из наблюдений за сервером и чтения форума (я с Информиксом совсем недавно) - он автоматически строит индексы на ключи (первичные и внешние). Соответственно у меня несколько вопросов:
1. Индекс на первичный ключ (по умолчанию) - некластерный. Можно такое поведение как-то изменить?



Можно, нужно построить уникальный кластерный индекс а потом
создавать ПК. В этом случае сервер будет пользоваться индексом построенным заранее.

Евгений Фадеев
2. Можно ли выбросить некоторые индексы на внешние ключи (например в ситуации, когда таблица длиной в несколько десятков миллионов записей ссылается на таблицу длиной в десяток записей)? Или с этим нужно жить (либо он сам такие индексы пользовать не будет, либо ему нужно хинтами это задавать)?

Нельзя.

Для FK индекс нужен по обьективным причинам
1. По полям PK=FK очень часто делается join.
2. Проверка целостности. При попытке удаления PK записи поверка
наналичие FK записи производится по индексу.
3. Каскадное удаление.

Не понимаю в чем может быть выигрыш от отсутствия индекса под FK?
и зачем может пондобится давить FK индекс хинтами ?

Может лучше вообще не строить FK если он мешает?
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913500
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итого в сухом остатке:
1. С первичными ключами понятно. Забиваем.
2. Индексы на внешние ключи. Вопрос на засыпку: всегда ли наличие индекса ускоряет SELECT?
3. (to onstat-) Внешние ключи нужны не для ускорения чего бы то ни было, а для определения ограничений в рамках схемы.
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913507
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫЖ Целостность можно поддерживать с помощью триггеров и check констрейнтов, тогда индексы можно не делать.
С помощью триггеров можно много чего интересного наделать, например в качестве pk сделать поле(я) вьюхи (таблицы из другой бд).
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913524
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Фадеев
2. Индексы на внешние ключи. Вопрос на засыпку: всегда ли наличие индекса ускоряет SELECT?Всегда. Оптимизатор решает использовать или нет.
Всегда замедляют insert.
Всегда ускоряют update, delete (в смысле когда фильтр нормальный, информикс -- блокировщик).


На каждое всегда естественно найдутся исключения, но писать лень.
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913744
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисВсегда. Оптимизатор решает использовать или нет.То есть сервер их строит всегда, а потом оптимизатор мучается выбором? :)
Журавлев ДенисВсегда замедляют insert.Это понятно.
Журавлев ДенисВсегда ускоряют update, delete (в смысле когда фильтр нормальный, информикс -- блокировщик).А если происходит UPDATE индексированного поля?
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913777
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисЗЫЖ Целостность можно поддерживать с помощью триггеров и check констрейнтов, тогда индексы можно не делать.Да все можно - зачем только? Если все тоже самое можно делать гораздо проще, нагляднее, быстрее и дешевле?!
Журавлев ДенисС помощью триггеров можно много чего интересного наделать, например в качестве pk сделать поле(я) вьюхи (таблицы из другой бд).Стоя на лыжах в гамаке? :)
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913794
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ФадеевТо есть сервер их строит всегда, а потом оптимизатор мучается выбором? :)Ага, он комсомолец.

Евгений Фадеев
Это понятно.Я рад.


Евгений ФадеевА если происходит UPDATE индексированного поля?А если delete? В общем зачем я вам объясняю если вы и так все знаете.
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913809
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисВ общем зачем я вам объясняю если вы и так все знаете.:)) Я не все знаю. Я про Информикс - совсем мало. Я с ним всего пару месяцев сожительствую.

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

Поработав с информиксом 2 года я понял что создавать несколько бд в одном инстансе -- идиотия, и лишний геморрой.

Был случай: бд 400 таблиц, две таблицы с естественными ключами, остальные сурогаты, конечно естественный ключ пришлось изменить, добавить поле и исключить уникальность, для того чтоб старый код хоть как-нибудь работал, таблицу переименовали, создали вью (с именем ляля_tbl -- гыгы), изображающее из себя старую таблицу, и целостность поддерживать триггерами выполняя селекты на вью.
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913872
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Фадеев
3. (to onstat-) Внешние ключи нужны не для ускорения чего бы то ни было, а для определения ограничений в рамках схемы.

Я и об этом написал

onstat-
2. Проверка целостности. При попытке удаления PK записи поверка
наналичие FK записи производится по индексу.


Другие базы данных могут проверять по таблице(данным),
но Infromix проверку FK делает именно по индексу.
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913917
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- Евгений Фадеев
3. (to onstat-) Внешние ключи нужны не для ускорения чего бы то ни было, а для определения ограничений в рамках схемы.

Я и об этом написал
Я это к тому что
onstat-Может лучше вообще не строить FK если он мешает?Ну и (если начать придираться, чего делать не хочется) - ключ не строится, а объявляется.
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913974
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тяпничное: Поработав два года с ораклом я понял какое счастье, что в информиксе по умолчанию планы запросов не шарятся между сессиями и для каждого курсора строятся заново.
...
Рейтинг: 0 / 0
Индексы на ключи
    #33913990
Фотография Евгений Фадеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев ДенисТяпничное: Поработав два года с ораклом я понял какое счастье, что в информиксе по умолчанию планы запросов не шарятся между сессиями и для каждого курсора строятся заново.Э... А в чем счастье-то?
...
Рейтинг: 0 / 0
Индексы на ключи
    #33914157
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений Фадеев onstat- Евгений Фадеев
3. (to onstat-) Внешние ключи нужны не для ускорения чего бы то ни было, а для определения ограничений в рамках схемы.

Я и об этом написал
Я это к тому что
onstat-Может лучше вообще не строить FK если он мешает?Ну и (если начать придираться, чего делать не хочется) - ключ не строится, а объявляется.

Ну если быть окончательно педантичным то не ключ,
а ограничение добавляется
(alter table ...... add constraint ......).

Я прошу прощения за то, что нечаянно ввел Вас в заблуждение некорректным переводом(интерпретацией).

Я не собирался придираться,
мне просто интересно чем в данном случае

Евгений Фадеев
2. Можно ли выбросить некоторые индексы на внешние ключи (например в ситуации, когда таблица длиной в несколько десятков миллионов записей ссылается на таблицу длиной в десяток записей)? Или с этим нужно жить (либо он сам такие индексы пользовать не будет, либо ему нужно хинтами это задавать)?


мешает индекс на FK?
...
Рейтинг: 0 / 0
Индексы на ключи
    #33914278
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ФадеевЭ... А в чем счастье-то?Гыгыыгы. В том.
...
Рейтинг: 0 / 0
Индексы на ключи
    #33948023
Vladimir Sher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для Фадеева OFFTOPIC: Как дела на новом месте? Пиши на мыло sher хороший человек terlis точка ru.
...
Рейтинг: 0 / 0
Индексы на ключи
    #33953710
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Журавлев Денис Евгений Фадеев
2. Индексы на внешние ключи. Вопрос на засыпку: всегда ли наличие индекса ускоряет SELECT?Всегда. Оптимизатор решает использовать или нет.

Не соглашусь. К тому же и оптимизатор не всегда такой умный, как хотелось бы.
Журавлев ДенисНа каждое всегда естественно найдутся исключения, но писать лень.
В том то и дело, что эти исключения иногда играют большое значение и вполне понятно желание Евгения управлять возможностями. Как и в случае с автоматическим построением индексов для внешних ключей (как, например, у Оракла, когда автоматом не строится). Но все же, если сравнивать в общем, то я бы все таки оставил принудительное построение индексов, т.к. это намного лучше, чем когда люди вообще не строят индексы на ключах (видел пару раз такие промышленные БД на Оракле, когда у заказчика через несколько месяцев эксплуатации "вдруг" все начинало жутко тормозить, а у разработчика на малых объемах летало).
...
Рейтинг: 0 / 0
Индексы на ключи
    #33953765
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тан Евгений Фадеев
2. Можно ли выбросить некоторые индексы на внешние ключи (например в ситуации, когда таблица длиной в несколько десятков миллионов записей ссылается на таблицу длиной в десяток записей)? Или с этим нужно жить (либо он сам такие индексы пользовать не будет, либо ему нужно хинтами это задавать)?
Почему вы думаете, что индекс вам помешает?
Пример такого "мешающего" индекса - автоиндекс на ключ "пол", где всего два значения М и Ж. Надо доказывать неэффективность такого индекса ?
...
Рейтинг: 0 / 0
Индексы на ключи
    #33953884
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisПример такого "мешающего" индекса - автоиндекс на ключ "пол", где всего два значения М и Ж. Надо доказывать неэффективность такого индекса ?
А можно?
...
Рейтинг: 0 / 0
Индексы на ключи
    #33954311
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilisвсего два значения М и Ж. А что так мало ? Обычно 3, иногда 5.
...
Рейтинг: 0 / 0
Индексы на ключи
    #33954520
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilis Тан Евгений Фадеев
2. Можно ли выбросить некоторые индексы на внешние ключи (например в ситуации, когда таблица длиной в несколько десятков миллионов записей ссылается на таблицу длиной в десяток записей)? Или с этим нужно жить (либо он сам такие индексы пользовать не будет, либо ему нужно хинтами это задавать)?
Почему вы думаете, что индекс вам помешает?
Пример такого "мешающего" индекса - автоиндекс на ключ "пол", где всего два значения М и Ж. Надо доказывать неэффективность такого индекса ?
А это зависит от распределения данных.
И если согласно распределению индекс не эффективен, тогда он не будет использоватся оптимизатором.
Зато без индекса большой проблемой будут попытки изменить значения ключа в главной таблице. Или записи из нее удалить.
...
Рейтинг: 0 / 0
Индексы на ключи
    #33954771
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тан
А это зависит от распределения данных.
И если согласно распределению индекс не эффективен, тогда он не будет использоватся оптимизатором.
Индексы на таблицы размером меньше одной страницы почти никогда не используются, хотя можно попробовать что будет если все поля таблицы в индекс включить.
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 1 из 3
Форумы / Informix [игнор отключен] [закрыт для гостей] / Индексы на ключи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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