
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
06.09.2017, 11:53
|
|||
|---|---|---|---|
Clob to blob |
|||
|
#18+
Всем привет! Подскажите как лучше конвертировать столбец из clob в blob Таблица партицированная, 140 млн записей, около 2 тб Я создал blob столбец и стал конвертировать пачками по 10000 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Но джобы падают с snapshot too old: rollback segment number 37 with name "_SYSSMU37_1974413906$" too small Есть ли способ проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.09.2017, 12:01
|
|||
|---|---|---|---|
|
|||
Clob to blob |
|||
|
#18+
Pir, это.. я бы предложил создать еще табличку big_table_2 без индексов на big_table дропаешь индексы и инсертишь в big_table_2 bulk insert select чтоб не генерился откат потом транкейтишь big_table и вставляешь обратно уже сконверченное из big_table_2 bulk insert select ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.09.2017, 12:18
|
|||
|---|---|---|---|
Clob to blob |
|||
|
#18+
Pir, У тебя таблица партиционирована, а ты ее фуллсканами да еще и с динамическим SQL лопатишь. 1) Самый простой вариант - бей транзакции по партициям. В апдейте явно указывай имя партиции - список их ты получишь из словаря. 2) Если размер партиций слишком велик - то заморачивайся и бей транзакции по группам экстентов. Dba_extents + dbms_rowid тебе в помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.09.2017, 12:20
|
|||
|---|---|---|---|
Clob to blob |
|||
|
#18+
Бродячий Айтист, Там есть нюансы.. На таблице foreign key, который не снять. Т.к. она связана с родительской таблицей через ссылочное партиционирование. И вообще это промышленная таблица с архивом документов за 5 лет. Я не готов ее потерять) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.09.2017, 12:39
|
|||
|---|---|---|---|
Clob to blob |
|||
|
#18+
Pir Код: plsql 1. Вот это условие согласно заявленной логике и наполнению переменных неправильно: могут возникать коллизии, когда на 1 поле попадает 2 джоба ( см. здесь ) - поэтому и падает со snapshot too old. Джобы лучше создавать в рамках 1 партиции (доп условие) и если берёшь счётчик по кол-ву строк, то хэш здесь ни к чему, используй rownum Для ускорения используй forall update Пример: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=52&mobile=1&tid=1885309]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
397ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 722ms |

| 0 / 0 |
