Re: Быстрая вставка двух больших связанных таблиц
От: zorgio  
Дата: 24.10.06 09:48
Оценка:
Здравствуйте, VZakharin, Вы писали:

VZ>Здравствуйте!

VZ>Вопрос в следующем.
VZ>Есть база в MS SQL 2000. А в ней 2 таблицы, связанные по первичному ключу.
VZ>Путь это будут

VZ>Table1 и Table2.

VZ>1 -> M
VZ> ID T1_ID

VZ>Таблицы большие. Допустим, Table1 содержит 50тыс. записей.

VZ>Table1.ID при вставке назначается инкрементом по Identity.
VZ>Каждая строка с Table1.ID содержит N(~200) строк для Table2.T1_ID = Table1.ID
VZ>Есть возможность выборки частями из Table1.

VZ>Вопрос заключается в том, как мне более шустро скопировать содержимое Table1 и Table2, скажем, в другую связку таблиц (в эти же таблицы, в те же таблицы на другой БД)?

VZ>Сейчас я перегоняю через ADO.NET путем
VZ>1. вставки строки в Table1,
VZ>2. выяснения scope_identity(),
VZ>3. заполнения DataSet для Table2,
VZ>4. выполения Update.

VZ>20 тыс. строк Table1 вставляются за 5,5 мин. Если со вставкой Table2, то за 1,5 часа.

VZ>Это медленно. Интересны ваши соображения на этот счет, коллеги, которым приходилось решать подобные задачи.
VZ>Если предложите вариант с хранимыми процедурами, временными таблицами — тоже интересно было бы.

VZ>Заранее спасибо.

А другая БД это не MS sql 2000? Если это она то наверное там есть механизм называемый database link в oracle
..и пусть умоются кровью те кто сомневается в нашем миролюбии.....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.