项目上有个需求,当数据库表中有10万条、20万条、30万条数据时,分别测试一下页面显示出这些数据的时间。
1、创建表
CREATE TABLE ttPerformanceTest(
id INT IDENTITY,name VARCHAR(100),CompID INT,DepID INT,sex INT,age INT,address VARCHAR(200),status INT,remark VARCHAR(200),
PRIMARY KEY(id)
)
2、创建存储过程,包含两个参数:start是起始id,num是插入记录的个数,里面用一个while循环来实现循环插入数据。
CREATE PROCEDURE sp_PerformanceTest(@start int,@num int)
AS
BEGIN
DECLARE @i INT;
DECLARE @Name VARCHAR(100);
SET @i=0;
WHILE @i <@num
BEGIN
INSERT INTO ttPerformanceTest(NAME,CompID,DepID,SEX,AGE,ADDRESS,STATUS,REMARK) VALUES
('tester'+CAST(@start+@i as varchar),1,1,@i%2+1,18,'北京市朝阳区'+CAST(@start+@i as varchar)+'号',1,'性能测试数据');
SET @i=@i+1;
END;
END;
3、执行存储过程,如需要插入十万条数据,一般20秒左右,数据就插入完成。
EXEC sp_PerformanceTest 1,100000
4、若需要插入20万数据,
1)可在上面的基础上,再插入10万条数据:
EXEC sp_PerformanceTest 100001,100000
2)当然,也可以将原来所有数据删除,重新插入20万条:
truncate table ttPerformanceTest;
EXEC sp_PerformanceTest 1,200000;