非要50萬嗎?
524288條行不行?
declare @i int
set @i = 1
insert into tblStock(PartCode,PartRule,PartERule )
values(newid(),N'123',N'456')
while (@i < 20)
begin
insert into tblStock(PartCode,PartRule,PartERule )
select newid(),PartRule,PartERule from tblStock
set @i = @i + 1
end
524288條行不行?
declare @i int
set @i = 1
insert into tblStock(PartCode,PartRule,PartERule )
values(newid(),N'123',N'456')
while (@i < 20)
begin
insert into tblStock(PartCode,PartRule,PartERule )
select newid(),PartRule,PartERule from tblStock
set @i = @i + 1
end
DECLARE @MyCounter numericSET @MyCounter = 0WHILE (@MyCounter < 500000)
BEGIN
INSERT INTO tblStock(PartCode) values(@MyCounter)
SET @MyCounter = @MyCounter + 1
END
竹幫主的SQL只用了28秒! 夠快!!!!
謝謝。:)
declare
@i int,
@count int
insert tblstock
values( convert(int,'0') + 1,'a','b')
set @i = 1WHILE (@i < 20)
BEGIN
select @count = count(*)
from tblstock insert tblstock
select convert(int,PartCode) + @count ,'a','b'
from tblstock
select @i = @i + 1
END
感覺上您的SQL應該比竹兄的稍慢(沒試)。:)
我機器的配置:
塞揚II 566+ 256M RAM+ WIN2K+SQL2k
使用newid(),32秒生成524288条记录
使用convert(int,PartCode) + @count ,需29秒
不经过转换,直接采用PartCode + @count,40秒上述结果是在机器运行情况大体相同下的一次结构,没有求平均值。
PIII800,384M内存感觉上可能采用newid()函数要消耗更多的系统资源?
如果不使用convert()可能需要系统自动判断,反而速度变慢
XP1600 + 512M DDR + WIN2K+SQL2k
newid()需要大约20秒,
我的用大约18秒,不转换21秒。
呵呵,作这个是挺好玩,日志飞涨,测试前要先清清日志,不然满了后自动增加严重影响性能。