서버 개발/데이터베이스 기타 & 팁

[MSSQL] 테스트 데이터 생성

지노윈 2020. 4. 19. 15:24
반응형

유저 테이블에 10만건 더미 데이터 생성하기

declare @i int
set @i = 0

while (@i < 100000)
begin
    set @i = @i + 1
    insert into dbo.[user](name, guildno, reg_date) values (concat('user', @i), @i/100, dateadd(dd, -@i/100, getdate()))
end

인벤토리 테이블에 1000만건 더미 데이터 생성하기

declare @i int
set @i = 0

while (@i < 10000000)
begin
    set @i = @i + 1
    insert into dbo.[inventory] (userno, itemid, reg_date) values (@i/200+1, @i, dateadd(dd, -@i/200, GETDATE()))
end

 

유저 스키마

drop table dbo.[user];
create table dbo.[user] (
userno BIGINT IDENTITY(1,1) NOT NULL -- '유저 uid'
,name NVARCHAR(30) NOT NULL -- '유저 이름'
,guildno INT  DEFAULT 0
,reg_date DATETIME  DEFAULT getdate() -- '등록일시 (= 가입일시)'
);

CREATE UNIQUE INDEX idx_userno ON dbo.[user](userno);
CREATE  INDEX idx_guildno ON dbo.[user](guildno);

 

인벤토리 스키마

drop table dbo.[inventory];
create table dbo.[inventory] (
itemno BIGINT IDENTITY(1,1) NOT NULL -- '아이템 uid'
,userno BIGINT NOT NULL -- '유저 uid'
,itemid INT NOT NULL -- '아이템 id'
,reg_date DATETIME  DEFAULT getdate() -- '등록일시'
);

CREATE UNIQUE INDEX idx_itemno ON dbo.inventory(itemno);
CREATE  INDEX idx_userno_reg_date ON dbo.inventory(userno, reg_date);