SQLSERVER CLR无序自增(支持并发)性能对比(2)
来源:未知 责任编辑:责任编辑 发表时间:2015-09-09 15:37 点击:次
go
reconfigure WITH OVERRIDE
ALTER DATABASE test SET TRUSTWORTHY On
www.2cto.com
-----------------------------------------------------------------------
drop FUNCTION GetRowNum
drop proc ClearGuid
drop ASSEMBLY testss
CREATE ASSEMBLY testss FROM 'C:\Documents and Settings\Administrator\桌面\test\SqlServerProject1\SqlServerProject1\bin\Debug\SqlServerProject1.dll' WITH PERMISSION_SET = UnSAFE;
go
创建函数
CREATE FUNCTION dbo.GetRowNum
(
@Guid uniqueidentifier
)
RETURNS bigint
AS EXTERNAL NAME
testss.test.GetRowNum
CREATE proc ClearGuid
(
@Guid uniqueidentifier
)
AS EXTERNAL NAME
testss.test.ClearGuid
----------------------------------------------------------------------------------------------------
GetRowNum与identity对比
declare @Guid uniqueidentifier
set @Guid=newid() www.2cto.com
select dbo.GetRowNum(@Guid)
from list
--清理哈希表
exec ClearGuid @Guid
select identity(int ,1,1) as id into #t from list
select id from #t
drop table #t
数据量943761
www.2cto.com
时间匆忙,经多次测试,初步结果
1.GetRowNum(5591)消耗时间比identity(6278)少近700毫秒
2.GetRowNum(2171)的CPU比identity(922)高很多
3.GetRowNum(2352)读是identity(4828)的一半
4.GetRowNum没有写入,identity的写入是1519
初步结论
1.GetRowNum消耗更多的CPU,进行运算
2.GetRowNum的磁盘消耗比identity低,而且是没有写入的
3.如果表已经有自增(不连续),identity就不能用,GetRowNum可以
4.GetRowNum瞬间返回数据,identity要停顿
作者 qanholas
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>