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
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • sql常见面试题
  • SQL SERVER 2005性能之跟踪
  • LINUX上RMAN自动备份脚本
  • sql server 列转行
  • SQL SERVER2008日常自动化备份
  • SQL Server 2005 镜像构建手册
  • SQL编程(一)
  • 如何将多个SQL查询统计结果一次显示出来
  • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色

数据库技术导航

SqlserverMysqlOracleDB2数据库数据库综合
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1