こんばんは。今回はSQL Serverで大量のダミーデータを生成する方法を備忘メモとして残しておきたいと思います。
それではまいります。
大量のダミーデータを登録する方法
取り急ぎ結論だけ。
テーブルの作成
CREATE TABLE dbo.TestTable
(
[id] int NOT NULL,
[data] varchar(max) NOT NULL
);
大量データ(今回は1000万行)のINSERT
DECLARE @p_NumOfRows BIGINT
SELECT @p_NumOfRows=10000000;
WITH Base AS (
SELECT 1 AS n
UNION ALL
SELECT n+1 FROM Base WHERE n < CEILING(SQRT(@p_NumOfRows))
),
Expand AS (
SELECT 1 AS c FROM Base AS b1, Base AS b2
),
Nums AS (
SELECT ROW_NUMBER() OVER(ORDER BY c) AS n FROM Expand
)
INSERT INTO TestTable
SELECT n, 'DATA' + RIGHT('00000000' + CONVERT(NVARCHAR, n), 8)
FROM Nums WHERE n <= @p_NumOfRows
OPTION (MaxRecursion 0);
この1000万件のデータ登録は1~2分ほどで完了しました。
参考文献
以下の記事を参考にさせていただきました。上記SQLの解説もあるので、ご参照ください。
[SQLServer] SQLServerに大量のダミーデータを作成する – Qiita
以上、短いですが今回はこれにておしまい
コメントを残す