如何有效地增加测试数据的大小

时间:2016-09-13 13:30:08

标签: java sql-server database

我有一个约100个拍卖会的数据库。我想创建一个工具,将我的数据库增长到10000或100000销售额的大小。我需要这个用于测试目的。我正在使用java和SQL Server 2005.原始数据将来自数据库备份文件,该文件将被恢复然后被操纵以增大。什么是增加数据大小的最有效方法?

4 个答案:

答案 0 :(得分:1)

这是一种快速而简单的方法:

我从表格的模拟开始,包含一些现有数据:

DECLARE @YourRealTable TABLE(ID INT IDENTITY,SomeValue VARCHAR(100));
INSERT INTO @YourRealTable VALUES
 ('One existing value 1'),('One existing value 2')
,('One existing value 3'),('One existing value 4');

- 以下CTE将以微秒为单位创建最多10 ^ 9个正在运行的数字...

- 允许插入~4000(4次存在时间1000)

DECLARE @start INT=1;
DECLARE @end INT  =1000;

WITH x AS(SELECT 1 AS N FROM(VALUES(1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) AS tbl(N))--10^1
,N3 AS (SELECT 1 AS N FROM x CROSS JOIN x AS N2 CROSS JOIN x N3) --10^3
,Tally AS(SELECT TOP(@end-@start +1) ROW_NUMBER() OVER(ORDER BY(SELECT NULL)) + @start -1 AS Nr FROM N3 
          CROSS JOIN N3 N6 CROSS JOIN N3 AS N9)
INSERT INTO @YourRealTable(SomeValue)
SELECT SomeValue
FROM @YourRealTable
CROSS APPLY Tally;

- 现在对~4000个类似记录感到满意:

SELECT * FROM @YourRealTable;

答案 1 :(得分:1)

创建一些测试数据并制作一个sql脚本来插入这些数据。 然后,您必须处理密钥等以获得正确的ID。 然后运行脚本,你就完成了。 如果您需要新的或更多数据,请重复。

答案 2 :(得分:0)

如果您没有任何标识列,则可以执行以下操作:

INSERT INTO Sales
SELECT  
    S.*
FROM    
    Sales S
    CROSS JOIN (SELECT 1 L UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5) Factor

答案 3 :(得分:0)

使用

DECLARE @Id INT=1

WHILE @Id<5
BEGIN
    INSERT INTO Sales
    SELECT * FROM Sales
    SET @Id=@Id+1;      
END