|
при truncate partition падает index
|
|||
---|---|---|---|
#18+
всем привет, После truncate partition падает unique index. каким должен быть индекс чтобы после очистки партиции индекс был валидным! Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 10:52 |
|
при truncate partition падает index
|
|||
---|---|---|---|
#18+
локальным? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 10:59 |
|
при truncate partition падает index
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 11:00 |
|
при truncate partition падает index
|
|||
---|---|---|---|
#18+
XCB, да, нужно на глобальный поменять ? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 11:01 |
|
при truncate partition падает index
|
|||
---|---|---|---|
#18+
Elibay, Уникальный индекс на partitioned table должен быть либо глобальным, либо локальным композитным с включением partitioning key (причем желательно префиксом, иначе partition pruning может не срабатывать.) Иначе его уникальность просто невозможно гарантировать. Глобальные индексы автоматически инвалидируются при проведении операций над разделами типа truncate и прочих, если операция выполняется без UPDATE GLOBAL INDEXES clause (что, в свою очередь, может оказаться весьма дорогостоящим, поскольку фактически глобальные индексы будут перестроены.) Локальные индексы в целом от таких операций не падают, хотя после некоторых операций (например, move,) соответствующие разделы индекса могут быть помечены как unusable, если они не пустые и если не сказано UPDATE INDEXES. Там ещё есть всякие нюансы, для полной картинки читайте документацию (ссылку дали уже.) Надеюсь, из вышесказанного Вы сможете вывести ответ на Ваш вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 20:11 |
|
при truncate partition падает index
|
|||
---|---|---|---|
#18+
Bobby Z.может оказаться весьма дорогостоящим, поскольку фактически глобальные индексы будут перестроены. подвержены операции delete ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 20:51 |
|
при truncate partition падает index
|
|||
---|---|---|---|
#18+
Bobby Z., решил вопрос тем что поставил rebuild index после truncate partition! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2013, 09:20 |
|
при truncate partition падает index
|
|||
---|---|---|---|
#18+
ElibayBobby Z., решил вопрос тем что поставил rebuild index после truncate partition! rebuild index дороже, чем update global indexes , если делаем DDL для небольшой доли данных по отношению ко всей таблице ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2013, 10:13 |
|
при truncate partition падает index
|
|||
---|---|---|---|
#18+
Дабы не заводить новую тему, подниму эту. Ситуация аналогичная, партицированная таблица с непартицированным индексом, у которых примерно такой DDL: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Есть джоб обслуживания партиций этой таблицы, который по некому правилу запускает либо ALTER TABLE ADD PARTITION либо ALTER TABLE TRUNCATE PARTITION После выполнения truncate partition индекс стал unusable. Если я всё правильно понимаю, ошибка в том, что индекс - не партицированный. Прошу помочь с вопросам: 1. Правильно ли я понимаю, что при данных вводных нужен локальный партицированный индекс? 2. Есть ли форма Alter index для требуемого преобразования индекса? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2020, 08:23 |
|
при truncate partition падает index
|
|||
---|---|---|---|
#18+
Synoptic 1. Правильно ли я понимаю, что при данных вводных нужен локальный партицированный индекс? 2. Есть ли форма Alter index для требуемого преобразования индекса? Если при данных вводных индекс TABLE_NAME_PK сделать локальным, это будет другой индекс. В частности, такой запрос как Код: plsql 1.
должен будет сканировать все партиции индекса, чтобы найти строку через индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2020, 13:29 |
|
при truncate partition падает index
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2020, 13:29 |
|
при truncate partition падает index
|
|||
---|---|---|---|
#18+
Alexander Anokhin, спасибо! Почитал... Получается что если добавлять локальные индексы, то в каждый индекс нужно добавлять поле, по которому партицирована таблица. А следовательно и в запросы... В моём случае возникает проблема, когда выполняется truncate партиции и инвалидируется первичный ключ, что не позволяет выполнять DML операции. Правильно ли я понимаю, что будет достаточно выполнить следующее: Код: plsql 1. 2. 3.
Это устранит проблему. Ну а для других индексов, у которых status ='UNUSABLE' , непосредственно после ALTER TABLE TRUNCATE PARTITION выполнять REBUILD. И максимум что будет, в период между TRUNCATE PARTITION и окончанием REBUILD индексов, запросы будут выполняться фулсканом таблицы. Всё верно? UPDATE Что-то похоже я затупил и можно просто делать Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2020, 06:20 |
|
|
start [/forum/topic.php?fid=52&fpage=51&tid=1881474]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 134ms |
0 / 0 |