webForumDet fria alternativet

Performance Test - 500.000 poster

5 svar · 264 visningar · startad av SteveP

StevePMedlem sedan mars 2003772 inlägg
#1

Hur får jag enklast in 500.000 random poster i en tabell genom en Stored Procedure eller genom Query Analyzer?

insert into table (usrfirstname, usrLastName) values ('Stefan" & i & "', 'SteveKing" & i & "')"

Nåt åt det hållet så det blir typ
Stefan13, SteveKing 13
Stefan14, SteveKing 14
osv... vill testa lite med indexering.

ca 500.000 poster vill ja ha in, men verkar inte kunna köra en For loop i en SP.

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Använd while

StevePMedlem sedan mars 2003772 inlägg
#3

Får inte till det

Declare @i int
Set @i = 1

While @i < 500000
Begin
insert into TestTable (Namn, emailadress) values ('Stefan ' + @i, 'SteveKing' + @i)
Set @i = @i +1
loop
LarsGMedlem sedan dec. 200012 464 inlägg
#4

byt loop mot end så att det matchar begin

StevePMedlem sedan mars 2003772 inlägg
#5

ah vilken miss. Nuså men fortf nåt fel
Den lägger till 9 rader sen får jag

Server: Msg 245, Level 16, State 1, Line 4
Syntax error converting the varchar value '*' to a column of data type int.

Jag har inte INT specificerat nånstans så varför ska den försöka konvertera nåt till INT. Sen vart kommer '*' ifrån?

Jag bara har 2 kollumner och dom är båda av typen varchar.

Declare @i varchar
Set @i = 1

While @i < 15
Begin
insert into TestTable (Namn, emailadress) values ('Stefan ' + @i, 'SteveKing' + @i)
Set @i = @i +1
end
StevePMedlem sedan mars 2003772 inlägg
#6

Nuså

Declare @i int
Set @i = 1
While @i < 500000
Begin
insert into TestTable (Namn, emailadress) values ('Stefan' + CONVERT(varchar, @i), 'SteveKing' + CONVERT(varchar, @i))
Set @i = @i +1
end
133 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)