Вставка очень многих строк в SQL 2005 - PullRequest
0 голосов
/ 29 января 2010

У меня есть проект, в котором мне нужно построить две таблицы в SQL 2005 и заполнить их данными (это справочные таблицы, если имя - это имя мужчины или женщины). У меня есть 7354 имен мужчин, которые нужно вставить и 7776 женских имен для вставки.

В настоящее время я делаю это

CREATE TABLE #NamesMale (
[FirstName] [varchar](50) NOT NULL,
   [MaxRank] [smallint] NULL)

CREATE TABLE #NamesFemale (
[FirstName] [varchar](50) NOT NULL,
   [MaxRank] [smallint] NULL)

insert into #NamesMale select 'AADEN',343
insert into #NamesMale select 'AAPELI',1000
insert into #NamesMale select 'AAPO',1000
... (snip ~7300 lines)
insert into #NamesMale select 'ZVONIMIR',1000
insert into #NamesMale select 'ZVONKO',1000
insert into #NamesMale select 'ZYGMUNT',1000

insert into #NamesFemale select 'AALIYAH',64
insert into #NamesFemale select 'AAREN',1000
insert into #NamesFemale select 'AARON',873
... (snip ~7700 lines)
insert into #NamesFemale select 'ZUZANA',1000
insert into #NamesFemale select 'ZUZANNA',1000
insert into #NamesFemale select 'ZVONIMIRA',1000

В настоящее время загрузка имен на моей машине занимает одну минуту четырнадцать секунд, и там, где это будет использоваться в полевых условиях, серверы часто будут гораздо менее мощными, чем моя машина разработки.

использование отдельного файла массового копирования не вариант, решение должно быть полностью transact-sql и в одном файле. Предпочтительно, я хотел бы решение, которое не нарушает совместимость с sql2000, но это не является обязательным требованием.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 29 января 2010

Я не знаю, замедляет ли select вас. Я бы сделал это:

insert into NamesMale (FirstName,MaxRank) values ('AADEN',343)
0 голосов
/ 30 января 2010

Я нашел ответ на свой вопрос. при попытке передать данные индикатору выполнения для программы, которая выполняет этот код (он использует переданные GO / общее количество GO), добавив 10 или 11 команд GO во вставки, которые теперь заканчиваются через несколько секунд.

Я не знаю, почему он это исправил, но если кто-то сделает это, я буду признателен за пояснения в комментариях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...