Быстрая вставка двух больших связанных таблиц
От: VZakharin  
Дата: 24.10.06 09:32
Оценка:
Здравствуйте!
Вопрос в следующем.
Есть база в MS SQL 2000. А в ней 2 таблицы, связанные по первичному ключу.
Путь это будут

Table1 и Table2.
1 -> M
ID T1_ID

Таблицы большие. Допустим, Table1 содержит 50тыс. записей.
Table1.ID при вставке назначается инкрементом по Identity.
Каждая строка с Table1.ID содержит N(~200) строк для Table2.T1_ID = Table1.ID
Есть возможность выборки частями из Table1.

Вопрос заключается в том, как мне более шустро скопировать содержимое Table1 и Table2, скажем, в другую связку таблиц (в эти же таблицы, в те же таблицы на другой БД)?
Сейчас я перегоняю через ADO.NET путем
1. вставки строки в Table1,
2. выяснения scope_identity(),
3. заполнения DataSet для Table2,
4. выполения Update.

20 тыс. строк Table1 вставляются за 5,5 мин. Если со вставкой Table2, то за 1,5 часа.
Это медленно. Интересны ваши соображения на этот счет, коллеги, которым приходилось решать подобные задачи.
Если предложите вариант с хранимыми процедурами, временными таблицами — тоже интересно было бы.

Заранее спасибо.
...и чего нет, того нельзя сосчитать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.