Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Трансфер большого к-ва записей и транзакции
|
|||
|---|---|---|---|
|
#18+
Я пришёл из мира Оракла (вернее, ненадолго зашёл), так что многое кажется непривычным - не взыщите... В общем, надо перегнать почти миллион записей из одной таблицы в другую. Написал курсор, перед его открытием начинаю транзакцию ("begin transaction") и каждые 10 тысяч оборотов делаю "commit" и новый "begin transaction" чтоб не переполнить буффер отката (плюс "commit" в конце, обработку ошибок оставим). А вопрос вот в чём: если вообще не возиться с транзакциями (т.е. будет автоматический "commit" после каждого INSERT-а), как это повлияет (и повлияет ли вообще) на производительность, и какие ещё могут быть подводные камни? Спасибо! Using ASE 15. ПС. Если б я правил миром, то ввёл бы одну базу данных - не важно какую. На фига их расплодили вместо объединения усилий для создания одной, но лучшей? Тем более что они на 95% из одной глины слеплены... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2006, 21:33 |
|
||
|
Трансфер большого к-ва записей и транзакции
|
|||
|---|---|---|---|
|
#18+
Если это ASE, если это разовая операция, если таблицы одианаковой структуры то используй bcp (выгрузка - загрузка) и не парься. Ну и дополнительных вопросов "море": есть ли identinity или BLOB в исходной таблице, тригеры, ссылки .... Всему сообществу ASE: это строго IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2006, 15:46 |
|
||
|
Трансфер большого к-ва записей и транзакции
|
|||
|---|---|---|---|
|
#18+
Лучше всего сделать Код: plaintext 1. 2. 3. 4. 5. Это позволяет не сохранять в логе сами данные, а сохряняются при этом только само выделение страниц данных. Или аналогично можно сделать через BCP (уже вроде бы про это сказали). А так - идеальный размер транзакции - это такие, которые заполняют одну страницу лога (4к байт). Теоретически расчитать сколько записей должно быть в одной транзакции достаточно сложно, если вообще возможно. Так что можно только подгонять, измеряя производительность (есть там определенные показатели), либо просто поставить "на шару". Т.е. транзакции должны быть не микроскописечкими, но небольшими, причем лучше ошибиться в большую, чем в меньшую сторону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2006, 20:20 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=89&tid=2013071]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 379ms |

| 0 / 0 |
