Я пытаюсь построить таблицу в MS SQL 2008, загруженную примерно 50 000 строк данных.Сейчас я делаю что-то вроде:
Create Table MyCustomData
(
ColumnKey Int Null,
Column1 NVarChar(100) Null,
Column2 NVarChar(100) Null
Primary Key Clustered
(
ColumnKey ASC
)
WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON
)
)
CREATE INDEX IDX_COLUMN1 ON MyCustomData([COLUMN1])
CREATE INDEX IDX_COLUMN2 ON MyCustomData([COLUMN2])
DECLARE @MyCount Int
SET @MyCount = 0
WHILE @MyCount < 50000
BEGIN
INSERT INTO MyCustomData
(ColumnKey, Column1, Column2)
Select @MyCount + 1, 'Custom Data 1', 'Custom Data 2'
Set @MyCount = @MyCount + 1
END
Моя проблема в том, что это безумно медленно.В какой-то момент я подумал, что мог бы создать оператор Select для создания своих пользовательских данных и использовать его в качестве источника данных для моего оператора Insert Into.
, то есть что-то вроде
INSERT INTO MyCustomData
(ColumnKey, Column1, Column2)
From (Select Top 50000 Row_Count(), 'Custom Data 1', 'Custom Data 2')
Я знаю, что это не такне работает, но это единственное, что я могу показать, что, кажется, дает пример того, что я после.Любые предложения будут очень ценны.