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)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器