табличку по столбцу дат (не входит в в этот уникальный индекс). Как сохранить уникальность по первичным двум столбцам? Индексы нужны локальные. При партиционировании вылезает требование о том что столбец партиционирования должен быть в уникальном индексе.
А если сделать локальный индекс + unique констрейнт с клаузой using index?
таблицу можно партиционировать. а индекс оставить глобальным. в 19 oracle глобальный индекс быстро можно отделить секцию даже с глобальным индексом. у нас на работе каждую ночь несколько секций в олтп бд отделяются. транзакции при этом не теряются.
You cannot get a around the problem by separating the index from the constraint (which is always good practice). Clearly it is not a technical limitation. But if it were possible, consder the implications for performance. When inserting a row, a unique index (or a non-unique index enforcing a unique constraint) must be searched to see if the key value already exists. For my little four partition table, that would mean four index searches: one of each local index partition. Well, OK. But what if the table were range partitioned into a thousand partitions? Then every insert would have to make a thousand index lookups. This would be unbelievably slow. By restricting unique indexes to global or local prefixed, Uncle Oracle is ensuring that we cannot create such an awful situation.
Да это абсолютно логично😏
Обсуждают сегодня