Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Update большого числа записей
|
|||
|---|---|---|---|
|
#18+
Добрый день! Необходимо выполнить апдейт полей в таблице: UPDATE tab1 t1 set DESC = ( SELECT T_ID from tab2 t2 where t1.KEY_id=t2.KEY2_ID); Проблема в том, что таблица очень большая(больше 30млн записей), поэтому боюсь переполнения transaction log. Отключить запись в лог не представляется возможным. Экспорт-Импорт из-за джойна не работает, поэтому прошу помочь в написании ХП c conmit'ом через каждые 10000 записей, например. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2009, 15:18 |
|
||
|
Update большого числа записей
|
|||
|---|---|---|---|
|
#18+
Добрый день. 1. Что значит "Экспорт-Импорт из-за джойна не работает"? Единственная проблема с этим может быть в том, что у tab1 нет primary key. Иначе: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2009, 10:00 |
|
||
|
Update большого числа записей
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо за готовое решение. Воспользуюсь EXPORT + LOAD, так выполняется быстрее всего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2009, 12:58 |
|
||
|
Update большого числа записей
|
|||
|---|---|---|---|
|
#18+
Марк, а если у меня похожая проблема, но не UPDATE, а INSERT?? Кроме import/export у меня вообще никаких вариантов, т.е. вариант #2 не существует для INSERT? Я пробовал import/export, но столкнулся с тем, что слишком долго выполняется данная команда, особенно import - попытался на тестовой базе, которая каждый день апдэйтится с продакшн-базы, не хватило даже ночи! База под утро рестартовала и всё прекратилось... даже не на полпути... :( В общем, мне нужно в таблице поменять тип столбца. Сейчас это CLOB, должно быть XML, т.к. содержит XML-данные. CLOB ужасно тормозит, т.к. частенько извлекая данные приходится кастить к XML, чтобы извлечь аттрибуты. Поскольку сделав в таблице XML-столбец, потом невозможно удалить исходный, только пересоздавать таблицу, то решил всё сделать через промежуточную таблицу, с нужным типом столбца, куда солью исходные, проCASTенные... И вот... опять неудача. Хотя данных не так уж много. 48 тыс записей. Возможно, тормоза из-за того, что парсит XML? Черт его знает... Мне главное решить задачу.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 18:16 |
|
||
|
Update большого числа записей
|
|||
|---|---|---|---|
|
#18+
Ах да, еще. Еще одна проблема. Вот что выдал экспорт: SQL27984W The export command completed successfully. Some recreate information has not been saved to the PC/IXF file during Export. This file will not be supported in Import CREATE mode. Reason code="2,7". Боюсь потерять данные, а сравнивать все 48 тысяч... нереально... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 18:19 |
|
||
|
Update большого числа записей
|
|||
|---|---|---|---|
|
#18+
NafigatorПоскольку сделав в таблице XML-столбец, потом невозможно удалить исходный, только пересоздавать таблицу, то решил всё сделать через промежуточную таблицу, с нужным типом столбца, куда солью исходные, проCASTенные... И вот... опять неудача. Хотя данных не так уж много. 48 тыс записей. Возможно, тормоза из-за того, что парсит XML? Черт его знает... Мне главное решить задачу....Не очень понял проблему. Вы делаете export to ... select col1, ..., xmlcast(...) as new_xml_col from ...; И что, импорт потом медленно идёт в новую таблицу newtab(col1 ..., ..., xml_col xml)? SQL27984W говорит о том, что всё нормально, только import CREATE не будет из этого файла работать. Т.е. вам надо будет сделать сначала create newtab сделать, а потом import INSERT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 18:53 |
|
||
|
Update большого числа записей
|
|||
|---|---|---|---|
|
#18+
Да, Вы всё верно поняли. Если экспорт отработал за час, может полтора... То импорт продолжается уже почти 5 часов... :( (запустил повторно, уже с созданием файла на удаленной машине). Да и файлик-то небольшой! 5 мегабайт... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2010, 19:00 |
|
||
|
Update большого числа записей
|
|||
|---|---|---|---|
|
#18+
NafigatorДа, Вы всё верно поняли. Если экспорт отработал за час, может полтора... То импорт продолжается уже почти 5 часов... :( (запустил повторно, уже с созданием файла на удаленной машине). Да и файлик-то небольшой! 5 мегабайт...Экспорт 48k записей полтора часа??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 10:33 |
|
||
|
Update большого числа записей
|
|||
|---|---|---|---|
|
#18+
Всё оказалось грустнее... Не знаю, почему экспорт закончился на 5 мегабайтах, я сейчас глянул данные по таблице, оказалось следующее: итак, количество записей - около 48 тыс, но проблема нарисовалась именно в CLOB-полях. Средний размер записи - 83Кб (существуют записи с "отчетом", что хранится в этом поле, размером 15 МБ!) Итого имеем результирующий объем файла более 4 ГБ... Что же делать? Понятно, что можно разбить на несколько этапов "слива". Но очень долго и муторно, возможно, более 1 суток апдэйта?? Не уверен, что нам дадут столько времени на модификацию продакшн-базы... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2010, 11:12 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=36714673&tid=1602693]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 277ms |
| total: | 392ms |

| 0 / 0 |
