GUID和自增ID的比较_insert
1.单条插入
------------------------------------------------------------------------------------------------
--清空缓存
DBCC FREEPROCCACHE WITH NO_INFOMSGS
DBCC FREESESSIONCACHE WITH NO_INFOMSGS
DBCC FREESYSTEMCACHE('All') WITH NO_INFOMSGS
DBCC DROPCLEANBUFFERS WITH NO_INFOMSGS
SET NOCOUNT on
DECLARE @费用ID int
SET @费用ID =7001000
CREATE TABLE #result
(
状态 varchar(20),
[test(毫秒)] INT,
[test_id(毫秒)] INT,
[test_guid(毫秒)] INT,
[test_id_guid(毫秒)] INT,
[test_id_guid1(毫秒)] INT
)
DECLARE @start INT
DECLARE @end INT
SET @start=1
SET @end=100
WHILE (@start<=@end)
BEGIN --循环开始
DBCC FREEPROCCACHE
DBCC FREESESSIONCACHE
DBCC FREESYSTEMCACHE('All')
DBCC DROPCLEANBUFFERS
declare @d datetime
set @d = getdate()
insert test(费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量)
SELECT @费用ID ,@费用ID, 15, 'YB', 'C1', 9 , '2011-05-05 00:00:00.000' ,837 ,857 ,20
declare @result int
select @result = datediff(ms, @d, getdate())
declare @d1 datetime
set @d1 = getdate()
insert test_id(费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量)
SELECT @费用ID ,@费用ID, 15, 'YB', 'C1', 9 , '2011-05-05 00:00:00.000' ,837 ,857 ,20
declare @result1 int
select @result1 = datediff(ms, @d1, getdate())
declare @d2 datetime
set @d2 = getdate()
insert test_guid(费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量)
SELECT @费用ID ,@费用ID, 15, 'YB', 'C1', 9 , '2011-05-05 00:00:00.000' ,837 ,857 ,20
declare @result2 int
select @result2 = datediff(ms, @d2, getdate())
declare @d3 datetime
set @d3 = getdate()
insert test_id_guid(费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量)
SELECT @费用ID ,@费用ID, 15, 'YB', 'C1', 9 , '2011-05-05 00:00:00.000' ,837 ,857 ,20
declare @result3 int
select @result3 = datediff(ms, @d3, getdate())
declare @d4 datetime
set @d4 = getdate()
insert test_id_guid1(费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量)
SELECT @费用ID ,@费用ID, 15, 'YB', 'C1', 9 , '2011-05-05 00:00:00.000' ,837 ,857 ,20
declare @result4 int
select @result4 = datediff(ms, @d4, getdate())
INSERT INTO #result
SELECT '正常',
@result AS 'test(毫秒)',
@result1 'test_id(毫秒)',
@result2 'test_guid(毫秒)',
@result3 'test_id_guid(毫秒)',
@result4 'test_id_guid1(毫秒)'
SET @费用ID=@费用ID+1
SET @start=@start+1
END --循环结束
SELECT * FROM #result
UNION ALL
SELECT '最小值',
min([test(毫秒)]),
min([test_id(毫秒)]),
min([test_guid(毫秒)]),
min([test_id_guid(毫秒)]),
min([test_id_guid1(毫秒)])
FROM #result
UNION ALL
SELECT '平均值',
AVG([test(毫秒)]),
AVG([test_id(毫秒)]),
AVG([test_guid(毫秒)]),
AVG([test_id_guid(毫秒)]),
AVG([test_id_guid1(毫秒)])
FROM #result
UNION ALL
SELECT '最大值',
max([test(毫秒)]),
max([test_id(毫秒)]),
max([test_guid(毫秒)]),
max([test_id_guid(毫秒)]),
max([test_id_guid1(毫秒)])
FROM #result
--DROP TABLE #result
------------------------------------------------------------------------------------------------
SELECT COUNT(*) FROM #result WHERE [test_id(毫秒)]>[test_guid(毫秒)]
SELECT COUNT(*) FROM #result WHERE [test_id(毫秒)]>[test_id_guid(毫秒)]
SELECT COUNT(*) FROM #result WHERE [test_id(毫秒)]>[test_id_guid1(毫秒)]
SELECT COUNT(*) FROM #result WHERE [test_id(毫秒)]>[test_guid(毫秒)]
状态 test(毫秒) test_id(毫秒) test_guid(毫秒) test_id_guid(毫秒) test_id_guid1(毫秒)
正常 106 16 23 3 0
正常 0 0 3 0 0
正常 0 0 0 0 0
正常 3 0 0 0 0
正常 3 0 0 0 0
正常 3 0 0 0 0
正常 0 0 3 0 0
正常 0 0 0 0 3
正常 0 0 0 0 0
正常 0 0 0 20 0
正常 0 0 0 3 0
正常 0 0 0 0 3
正常 0 0 0 3 0
正常 3 0 0 0 0
正常 3 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 3 0 0 0 0
正常 3 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 3 0 0 0 0
正常 3 0 0 0 0
正常 83 0 0 3 0
正常 0 0 0 3 0
正常 0 0 0 0 0
正常 3 0 0 0 0
正常 0 0 0 3 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 3 0 0
正常 0 0 0 3 0
正常 0 0 0 3 0
正常 3 0 0 0 16
正常 0 0 0 0 0
正常 3 0 3 0 0
正常 0 3 0 0 0
正常 3 0 0 10 0
正常 23 16 3 50 0
正常 13 0 0 0 3
正常 0 0 0 3 0
正常 0 36 13 10 3
正常 3 16 20 6 0
正常 0 0 6 6 6
正常 10 0 10 6 6
正常 10 0 3 0 0
正常 3 10 0 3 0
正常 3 10 6 3 3
正常 16 3 3 6 0
正常 3 0 0 0 0
正常 0 0 0 3 0
正常 0 0 0 0 0
正常 0 3 0 0 0
正常 0 0 0 0 56
正常 0 0 0 3 0
正常 0 0 0 0 0
正常 0 3 0 0 0
正常 0 3 0 0 0
正常 3 0 0 0 0
正常 3 0 0 0 0
正常 3 0 0 0 0
正常 0 0 0 0 6
正常 23 6 10 3 6
正常 0 26 0 13 0
正常 10 0 0 3 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 3
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 3 0 0 0
正常 0 0 3 0 0
正常 0 3 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 3 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 0 0 0 0 0
正常 3 0 0 0 0
正常 0 3 0 0 0
正常 3 0 0 0 0
正常 3 0 0 0 0
正常 0 0 3 0 0
正常 0 0 3 0 0
正常 0 0 10 0 3
最小值 0 0 0 0 0
平均值 3 1 1 1 1
最大值 106 36 23 50 56
------------------------------------------------------------------------------------------------
--清空缓存
DBCC FREEPROCCACHE WITH NO_INFOMSGS
DBCC FREESESSIONCACHE WITH NO_INFOMSGS
DBCC FREESYSTEMCACHE('All') WITH NO_INFOMSGS
DBCC DROPCLEANBUFFERS WITH NO_INFOMSGS
SET NOCOUNT on
CREATE TABLE #result
(
状态 varchar(20),
[test(毫秒)] INT,
[test_id(毫秒)] INT,
[test_guid(毫秒)] INT,
[test_id_guid(毫秒)] INT,
[test_id_guid1(毫秒)] INT
)
DECLARE @start INT
DECLARE @end INT
SET @start=1
SET @end=20
WHILE (@start<=@end)
BEGIN --循环开始
DBCC FREEPROCCACHE
DBCC FREESESSIONCACHE
DBCC FREESYSTEMCACHE('All')
DBCC DROPCLEANBUFFERS
declare @d datetime
set @d = getdate()
insert test(费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量)
SELECT TOP 1000 费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量 from 抄表收费
declare @result int
select @result = datediff(ms, @d, getdate())
declare @d1 datetime
set @d1 = getdate()
insert test_id(费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量)
SELECT TOP 1000 费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量 from 抄表收费
declare @result1 int
select @result1 = datediff(ms, @d1, getdate())
declare @d2 datetime
set @d2 = getdate()
insert test_guid(费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量)
SELECT TOP 1000 费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量 from 抄表收费
declare @result2 int
select @result2 = datediff(ms, @d2, getdate())
declare @d3 datetime
set @d3 = getdate()
insert test_id_guid(费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量)
SELECT TOP 1000 费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量 from 抄表收费
declare @result3 int
select @result3 = datediff(ms, @d3, getdate())
declare @d4 datetime
set @d4 = getdate()
insert test_id_guid1(费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量)
SELECT TOP 1000 费用_id, 水表编码, 水表口径, 水表用途, 收费方式, 水表状态, 本期抄表日, 上期读数, 本期读数, 实抄水量 from 抄表收费
declare @result4 int
select @result4 = datediff(ms, @d4, getdate())
INSERT INTO #result
SELECT '正常',
@result AS 'test(毫秒)',
@result1 'test_id(毫秒)',
@result2 'test_guid(毫秒)',
@result3 'test_id_guid(毫秒)',
@result4 'test_id_guid1(毫秒)'
SET @start=@start+1
END --循环结束
SELECT * FROM #result
UNION ALL
SELECT '最小值',
min([test(毫秒)]),
min([test_id(毫秒)]),
min([test_guid(毫秒)]),
min([test_id_guid(毫秒)]),
min([test_id_guid1(毫秒)])
FROM #result
UNION ALL
SELECT '平均值',
AVG([test(毫秒)]),
AVG([test_id(毫秒)]),
AVG([test_guid(毫秒)]),
AVG([test_id_guid(毫秒)]),
AVG([test_id_guid1(毫秒)])
FROM #result
UNION ALL
SELECT '最大值',
max([test(毫秒)]),
max([test_id(毫秒)]),
max([test_guid(毫秒)]),
max([test_id_guid(毫秒)]),
max([test_id_guid1(毫秒)])
FROM #result
--DROP TABLE #result
------------------------------------------------------------------------------------------------
SELECT COUNT(*) FROM #result WHERE [test_id(毫秒)]>[test_guid(毫秒)]
SELECT COUNT(*) FROM #result WHERE [test_id(毫秒)]>[test_id_guid(毫秒)]
SELECT COUNT(*) FROM #result WHERE [test_id(毫秒)]>[test_id_guid1(毫秒)]
SELECT COUNT(*) FROM #result WHERE [test_id(毫秒)]>[test_guid(毫秒)]
状态 test(毫秒) test_id(毫秒) test_guid(毫秒) test_id_guid(毫秒) test_id_guid1(毫秒)
正常 536 383 146 73 46
正常 576 230 56 113 83
正常 336 593 40 70 30
正常 276 543 66 46 26
正常 290 880 116 166 26
正常 776 540 76 26 50
正常 806 496 53 26 30
正常 626 220 36 130 26
正常 573 156 80 76 26
正常 636 220 63 46 26
正常 593 183 60 86 30
正常 606 350 46 63 26
正常 643 593 100 163 33
正常 803 590 106 93 43
正常 693 526 116 83 63
正常 813 316 46 53 30
正常 593 166 66 90 73
正常 620 246 80 80 26
正常 573 170 53 60 26
正常 583 183 53 60 30
正常 563 1246 256 130 176
正常 900 630 120 510 40
正常 610 126 100 43 43
正常 623 200 83 30 30
正常 586 210 100 46 36
正常 553 183 53 76 33
正常 593 246 56 76 36
正常 590 366 173 180 33
正常 1146 550 146 46 33
正常 286 543 70 76 30
正常 240 576 60 70 30
正常 286 840 163 183 50
正常 766 536 120 50 103
正常 386 693 50 30 33
正常 240 676 120 173 26
正常 360 1016 136 153 103
正常 233 426 63 30 486
正常 253 476 60 60 63
正常 396 583 150 53 93
正常 266 393 53 30 476
正常 563 153 53 63 30
正常 283 526 50 26 30
正常 646 373 146 173 43
正常 460 1386 610 100 153
正常 930 166 63 26 30
正常 603 213 60 96 36
正常 643 223 76 66 26
正常 683 210 53 46 33
正常 610 230 43 63 100
正常 713 580 176 30 33
最小值 233 126 36 26 26
平均值 559 443 98 86 64
最大值 1146 1386 610 510 486
CREATE INDEX test1 ON test_id(id)
CREATE INDEX test2 ON test_guid(guidid)
CREATE INDEX test3 ON test_id_guid(id)
CREATE INDEX test4 ON test_id_guid(guidid)
CREATE INDEX test5 ON test_id_guid1(id)
CREATE INDEX test6 ON test_id_guid1(guidid)
CREATE INDEX test7 ON test_id_guid1(guidid1)