webForumDet fria alternativet

Performance Test - 500.000 poster

Databaser & SQLur Databashanterare & SQL

5 svar · 264 visningar · startad av SteveP

Medlem sedan mars 2003772 inlägg
Frågan#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.

Medlem sedan dec. 200012 464 inlägg
#2

Använd while

Medlem 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
Medlem sedan dec. 200012 464 inlägg
#4

byt loop mot end så att det matchar begin

Medlem 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
Medlem 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
138 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)