GUID和自增ID的比较_delete
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 =4406668
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=10
WHILE (@start<=@end)
BEGIN --循环开始
DBCC FREEPROCCACHE
DBCC FREESESSIONCACHE
DBCC FREESYSTEMCACHE('All')
DBCC DROPCLEANBUFFERS
declare @d datetime
set @d = getdate()
delete
FROM test
WHERE 费用_ID between @费用ID and @费用ID+100
declare @result int
select @result = datediff(ms, @d, getdate())
declare @d1 datetime
set @d1 = getdate()
delete
FROM test_ID
WHERE 费用_ID between @费用ID and @费用ID+100
declare @result1 int
select @result1 = datediff(ms, @d1, getdate())
declare @d2 datetime
set @d2 = getdate()
delete
FROM test_guid
WHERE 费用_ID between @费用ID and @费用ID+100
declare @result2 int
select @result2 = datediff(ms, @d2, getdate())
declare @d3 datetime
set @d3 = getdate()
delete
FROM test_id_guid
WHERE 费用_ID between @费用ID and @费用ID+100
declare @result3 int
select @result3 = datediff(ms, @d3, getdate())
declare @d4 datetime
set @d4 = getdate()
delete
FROM test_id_guid1
WHERE 费用_ID between @费用ID and @费用ID+100
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+100
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(毫秒)]
2.最后一条数据删除
------------------------------------------------------------------------------------------------
--清空缓存
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 =4407669
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()
delete
FROM test
WHERE 费用_ID= @费用ID
declare @result int
select @result = datediff(ms, @d, getdate())
declare @d1 datetime
set @d1 = getdate()
delete
FROM test_ID
WHERE 费用_ID= @费用ID
declare @result1 int
select @result1 = datediff(ms, @d1, getdate())
declare @d2 datetime
set @d2 = getdate()
delete
FROM test_guid
WHERE 费用_ID= @费用ID
declare @result2 int
select @result2 = datediff(ms, @d2, getdate())
declare @d3 datetime
set @d3 = getdate()
delete
FROM test_id_guid
WHERE 费用_ID= @费用ID
declare @result3 int
select @result3 = datediff(ms, @d3, getdate())
declare @d4 datetime
set @d4 = getdate()
delete
FROM test_id_guid1
WHERE 费用_ID= @费用ID
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(毫秒)]
--创建索引
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)
------------------------------------------------------------------------------------------------
--清空缓存
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 =4406668
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=10
WHILE (@start<=@end)
BEGIN --循环开始
DBCC FREEPROCCACHE
DBCC FREESESSIONCACHE
DBCC FREESYSTEMCACHE('All')
DBCC DROPCLEANBUFFERS
declare @d datetime
set @d = getdate()
delete
FROM test
WHERE 费用_ID between @费用ID and @费用ID+100
declare @result int
select @result = datediff(ms, @d, getdate())
declare @d1 datetime
set @d1 = getdate()
delete
FROM test_ID
WHERE 费用_ID between @费用ID and @费用ID+100
declare @result1 int
select @result1 = datediff(ms, @d1, getdate())
declare @d2 datetime
set @d2 = getdate()
delete
FROM test_guid
WHERE 费用_ID between @费用ID and @费用ID+100
declare @result2 int
select @result2 = datediff(ms, @d2, getdate())
declare @d3 datetime
set @d3 = getdate()
delete
FROM test_id_guid
WHERE 费用_ID between @费用ID and @费用ID+100
declare @result3 int
select @result3 = datediff(ms, @d3, getdate())
declare @d4 datetime
set @d4 = getdate()
delete
FROM test_id_guid1
WHERE 费用_ID between @费用ID and @费用ID+100
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+100
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(毫秒)]
GUID和自增ID的比较_delete相关推荐
- 弃用数据库自增ID,曝光一下我自己用到的解决方法之---终结篇
我写这篇随笔的目的旨在 澄清我在上一篇随笔 "弃用数据库自增ID,曝光一下我自己用到的解决方法" 中的一些事实与看法,同时,我将继续在并发的问题的作题, 我将在原来的存储过程上得用 ...
- Twitter-Snowflake,64位自增ID算法详解
Twitter-Snowflake,64位自增ID算法详解 from: http://www.lanindex.com/twitter-snowflake%EF%BC%8C64%E4%BD%8D%E8 ...
- mysql自增id与uuid的区别
前言 在设计数据库表的时候,MySQL官方推荐不要使用uuid或者不重复不连续的雪花id(long型且id唯一,单机递增),而是腿甲使用自增id,推荐使用auto_increment. 自增id做主键 ...
- 面试官问:如果MySQL的自增 ID 用完了,怎么办?
欢迎关注方志朋的博客,回复"666"获面试宝典 如果你用过或了解过MySQL,那你一定知道自增主键了.每个自增id都是定义了初始值,然后按照指定步长增长(默认步长是1).虽然,自然 ...
- 面试官问:MySQL 的自增 ID 用完了,怎么办?
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:程序猿面试指南 既然这块知识点不清楚,那回头就自己动手实践下 ...
- sqlserver 自增ID插入指定数据
set identity_insert 表名 ON --允许对自增列Id插入指定数据 insert into table_name(Id,Name) values(1,'test') set iden ...
- 8年面试官问到:数据库自增 ID 用完了会咋样?
有主键 如果你的表有主键,并且把主键设置为自增. 在 MySQL 中,一般会把主键设置成 int 型.而 MySQL 中 int 型占用 4 个字节,作为有符号位的话范围就是 [-2^31,2^31- ...
- hive导数据到mysql 自增主键出错_老大问我:“建表为啥还设置个自增 id ?用流水号当主键不正好么?”...
前言"又要开始新项目了,一顿操作猛如虎,梳理流程加画图.这不,开始对流程及表结构了.我:吧啦吧啦吧啦 --老大:这个建表为啥还设置个自增 id ?直接用流水号(用户号/产品号)当主键不就行 ...
- 45 MySQL自增id
45 MySQL自增id 表定义自增id 说到自增id,前面提到mysql的自增id不连续,当表定义的自增值达到上限后的逻辑是:再申请下一个id时,得到的值保持不变 create table t(id ...
最新文章
- 008 释放技能call分析
- mysql为什么表大了要重建_为什么MySQL分库分表后总存储大小变大了?
- linux用户双重认证登录,linux PAM 用户登录认证
- win7win10 配置wlan热点
- Oracle存储过程--案例
- 看完就能独自把集群搭起来!Hadoop HDFS完全分布式环境搭建以及技术详解
- 【数值分析】基础理论归纳
- Iocomp控件教程之LinearGauge--线性刻度尺控件
- Origin 2021 创建双y轴
- 什么是示波器的采样率
- 在Linux 中安装cmus 用命令行中玩转音乐库
- 为什么用CDN给你网站加速?
- 150. 逆波兰表达式求值(中等 栈 数组)
- 去中心化的联邦图神经网络
- 精心收集的95个超实用的JavaScript代码片段(ES6 +编写)
- 通讯录的实现(C语言)
- 10个致工程师在工作中快速成长的技巧
- java Map的基本用法
- [图形学] 基于图像的照明:漫反射辐照度
- 为了防止别人非法使用计算机可以通过,[单选] 为了防止别人非法使用计算机,可以通过为计算机设置口令()。...