USE tempdb GOCREATE TABLE tb(id char(8)) CREATE UNIQUE INDEX IX_tb ON tb(id) WITH IGNORE_DUP_KEY GODECLARE @dt datetime SET @dt = GETDATE() SET NOCOUNT ON DECLARE @row int SET @row = 1000000 WHILE @row >0 BEGIN RAISERROR('need %d rows', 10, 1, @row) WITH NOWAIT SET ROWCOUNT @row INSERT tb SELECT id = RIGHT(100000000 + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 8) FROM syscolumns c1, syscolumns c2 SET @row = @row - @@ROWCOUNT END SELECT BeginDate = @dt, EndDate = GETDATE(), Second = DATEDIFF(Second, @dt, GETDATE()) GOSELECT COUNT(*) FROM tb GODROP TABLE tb
Top zjcxc(邹建) ( ) 信誉:673 2006-8-19 19:57:22 得分: 0
测试结果:BeginDate EndDate Second 2006-08-19 19:55:01.8902006-08-19 19:56:02.06061 比楼主的快多了, 我生成100万只用了1分钟
Top zjcxc(邹建) ( ) 信誉:673 2006-8-19 20:01:39 得分: 0
FROM syscolumns c1, syscolumns c2 改为: FROM syscolumns c1, sysobjects o--, syscolumns c2 后, 测试的结果如下: need 1000000 rows 已忽略重复的键。 need 979225 rows 已忽略重复的键。 need 958452 rows 已忽略重复的键。 need 937692 rows 已忽略重复的键。 need 916935 rows 已忽略重复的键。 need 896181 rows 已忽略重复的键。 need 875433 rows 已忽略重复的键。 need 854680 rows 已忽略重复的键。 need 833935 rows 已忽略重复的键。 need 813196 rows 已忽略重复的键。 need 792469 rows 已忽略重复的键。 need 771735 rows 已忽略重复的键。 need 751005 rows 已忽略重复的键。 need 730291 rows 已忽略重复的键。 need 709576 rows 已忽略重复的键。 need 688869 rows 已忽略重复的键。 need 668157 rows 已忽略重复的键。 need 647464 rows 已忽略重复的键。 need 626775 rows 已忽略重复的键。 need 606064 rows 已忽略重复的键。 need 585390 rows 已忽略重复的键。 need 564702 rows 已忽略重复的键。 need 544015 rows 已忽略重复的键。 need 523330 rows 已忽略重复的键。 need 502662 rows 已忽略重复的键。 need 482006 rows 已忽略重复的键。 need 461319 rows 已忽略重复的键。 need 440650 rows 已忽略重复的键。 need 419970 rows 已忽略重复的键。 need 399310 rows 已忽略重复的键。 need 378664 rows 已忽略重复的键。 need 358012 rows 已忽略重复的键。 need 337366 rows 已忽略重复的键。 need 316727 rows 已忽略重复的键。 need 296070 rows 已忽略重复的键。 need 275454 rows 已忽略重复的键。 need 254848 rows 已忽略重复的键。 need 234241 rows 已忽略重复的键。 need 213644 rows 已忽略重复的键。 need 193025 rows 已忽略重复的键。 need 172417 rows 已忽略重复的键。 need 151814 rows 已忽略重复的键。 need 131214 rows 已忽略重复的键。 need 110619 rows 已忽略重复的键。 need 90035 rows 已忽略重复的键。 need 69439 rows 已忽略重复的键。 need 48851 rows 已忽略重复的键。 need 28286 rows 已忽略重复的键。 need 7761 rows 已忽略重复的键。 need 70 rows BeginDate EndDate Second ----------------------- ----------------------- ----------- 2006-08-19 19:59:27.340 2006-08-19 20:00:22.497 55 ----------- 1000000
再搞个聚焦
USE tempdb
GOCREATE TABLE tb(id char(8))
CREATE UNIQUE INDEX IX_tb ON tb(id)
WITH IGNORE_DUP_KEY
GODECLARE @dt datetime
SET @dt = GETDATE()
SET NOCOUNT ON
DECLARE @row int
SET @row = 1000000
WHILE @row >0
BEGIN
RAISERROR('need %d rows', 10, 1, @row) WITH NOWAIT
SET ROWCOUNT @row
INSERT tb SELECT
id = RIGHT(100000000 + CONVERT(bigint, ABS(CHECKSUM(NEWID()))), 8)
FROM syscolumns c1, syscolumns c2
SET @row = @row - @@ROWCOUNT
END
SELECT BeginDate = @dt, EndDate = GETDATE(), Second = DATEDIFF(Second, @dt, GETDATE())
GOSELECT COUNT(*) FROM tb
GODROP TABLE tb
Top
zjcxc(邹建) ( ) 信誉:673 2006-8-19 19:57:22 得分: 0
测试结果:BeginDate EndDate Second
2006-08-19 19:55:01.8902006-08-19 19:56:02.06061
比楼主的快多了, 我生成100万只用了1分钟
Top
zjcxc(邹建) ( ) 信誉:673 2006-8-19 20:01:39 得分: 0
FROM syscolumns c1, syscolumns c2
改为:
FROM syscolumns c1, sysobjects o--, syscolumns c2
后, 测试的结果如下:
need 1000000 rows
已忽略重复的键。
need 979225 rows
已忽略重复的键。
need 958452 rows
已忽略重复的键。
need 937692 rows
已忽略重复的键。
need 916935 rows
已忽略重复的键。
need 896181 rows
已忽略重复的键。
need 875433 rows
已忽略重复的键。
need 854680 rows
已忽略重复的键。
need 833935 rows
已忽略重复的键。
need 813196 rows
已忽略重复的键。
need 792469 rows
已忽略重复的键。
need 771735 rows
已忽略重复的键。
need 751005 rows
已忽略重复的键。
need 730291 rows
已忽略重复的键。
need 709576 rows
已忽略重复的键。
need 688869 rows
已忽略重复的键。
need 668157 rows
已忽略重复的键。
need 647464 rows
已忽略重复的键。
need 626775 rows
已忽略重复的键。
need 606064 rows
已忽略重复的键。
need 585390 rows
已忽略重复的键。
need 564702 rows
已忽略重复的键。
need 544015 rows
已忽略重复的键。
need 523330 rows
已忽略重复的键。
need 502662 rows
已忽略重复的键。
need 482006 rows
已忽略重复的键。
need 461319 rows
已忽略重复的键。
need 440650 rows
已忽略重复的键。
need 419970 rows
已忽略重复的键。
need 399310 rows
已忽略重复的键。
need 378664 rows
已忽略重复的键。
need 358012 rows
已忽略重复的键。
need 337366 rows
已忽略重复的键。
need 316727 rows
已忽略重复的键。
need 296070 rows
已忽略重复的键。
need 275454 rows
已忽略重复的键。
need 254848 rows
已忽略重复的键。
need 234241 rows
已忽略重复的键。
need 213644 rows
已忽略重复的键。
need 193025 rows
已忽略重复的键。
need 172417 rows
已忽略重复的键。
need 151814 rows
已忽略重复的键。
need 131214 rows
已忽略重复的键。
need 110619 rows
已忽略重复的键。
need 90035 rows
已忽略重复的键。
need 69439 rows
已忽略重复的键。
need 48851 rows
已忽略重复的键。
need 28286 rows
已忽略重复的键。
need 7761 rows
已忽略重复的键。
need 70 rows
BeginDate EndDate Second
----------------------- ----------------------- -----------
2006-08-19 19:59:27.340 2006-08-19 20:00:22.497 55
-----------
1000000