Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Трансфер большого к-ва записей и транзакции / 4 сообщений из 4, страница 1 из 1
10.02.2006, 21:33
    #33538279
Ursego
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трансфер большого к-ва записей и транзакции
Я пришёл из мира Оракла (вернее, ненадолго зашёл), так что многое кажется непривычным - не взыщите...

В общем, надо перегнать почти миллион записей из одной таблицы в другую. Написал курсор, перед его открытием начинаю транзакцию ("begin transaction") и каждые 10 тысяч оборотов делаю "commit" и новый "begin transaction" чтоб не переполнить буффер отката (плюс "commit" в конце, обработку ошибок оставим). А вопрос вот в чём: если вообще не возиться с транзакциями (т.е. будет автоматический "commit" после каждого INSERT-а), как это повлияет (и повлияет ли вообще) на производительность, и какие ещё могут быть подводные камни? Спасибо!

Using ASE 15.

ПС. Если б я правил миром, то ввёл бы одну базу данных - не важно какую. На фига их расплодили вместо объединения усилий для создания одной, но лучшей? Тем более что они на 95% из одной глины слеплены...
...
Рейтинг: 0 / 0
11.02.2006, 15:46
    #33538856
Guest04
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трансфер большого к-ва записей и транзакции
Если это ASE, если это разовая операция, если таблицы одианаковой структуры то используй bcp (выгрузка - загрузка) и не парься.
Ну и дополнительных вопросов "море": есть ли identinity или BLOB в исходной таблице, тригеры, ссылки ....

Всему сообществу ASE: это строго IMHO
...
Рейтинг: 0 / 0
12.02.2006, 20:20
    #33539687
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трансфер большого к-ва записей и транзакции
Лучше всего сделать
Код: plaintext
1.
2.
3.
4.
5.
'
select ...
into new_table
from old-table
where ...

Это позволяет не сохранять в логе сами данные, а сохряняются при этом только само выделение страниц данных.

Или аналогично можно сделать через BCP (уже вроде бы про это сказали).

А так - идеальный размер транзакции - это такие, которые заполняют одну страницу лога (4к байт). Теоретически расчитать сколько записей должно быть в одной транзакции достаточно сложно, если вообще возможно. Так что можно только подгонять, измеряя производительность (есть там определенные показатели), либо просто поставить "на шару".
Т.е. транзакции должны быть не микроскописечкими, но небольшими, причем лучше ошибиться в большую, чем в меньшую сторону.
...
Рейтинг: 0 / 0
14.02.2006, 17:06
    #33544316
Vlad_5181
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трансфер большого к-ва записей и транзакции
Если используется PowerBuilder, то есть очень простое средство Data Pipeline.

Вообще, вариантов масса.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Трансфер большого к-ва записей и транзакции / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]