大数据量数据库存储评测与示例

1、大数据量存储方式性能评测

(1)背景

空表插入;

表有4个字段。

(2)性能评测

序号

存储方式

插入条数

所用时间

1

纯JDBC

3,000

3m以上

2

连接池

3,000

16s

3

连接池 + 分段提交

3,000

12s

4

存储过程

20,000

4s

5

存储过程 + 分段提交

20,000

1s(有时还不到)

2、“存储过程 + 分段提交”大数据量存储源码示例

ALTER PROCEDURE [dbo].[sp_save_realtimeData]

AS
BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
 declare @size int  -- 数据条数
 declare @unit int  -- 分段提交数据条数
 declare @count int  -- 分段提交次数
 declare @commitSum int -- 分段提交实际数据条数
 declare @i int
 declare @j int
 
 declare @k int
 
 declare @curDate1 datetime
 declare @curDate2 datetime
 set @curDate1 = GETDATE()
 
 -- 计算分段提交次数
 set @size = 20002
 set @unit = 100
 if (@size % 100 = 0)
  set @count = @size / @unit
 else
  set @count = @size / @unit + 1
 --print 'count:'
 --print @count
 
 set @k = 0
 set @i = 1
 while @i <= @count
 BEGIN
  BEGIN TRY
   BEGIN TRAN
    
    -- 计算每次分段提交实际数据条数
    if ((@size - @unit * @i) > 0)
     set @commitSum = @unit
    else
     set @commitSum = @size - @unit * (@i - 1)
    --print 'commitSum:'
    --print @commitSum
    
    set @j = 1
    while @j <= @commitSum
    BEGIN
     insert into Datalog1(
      ID
      ,Flag
      ,Name
      ,Value)
     values(
      @k + 1
      ,1
      ,'名称'
      ,'值'
     )
         
     set @j = @j + 1
     set @k = @k + 1
    END
    
   COMMIT TRAN
  END TRY

  BEGIN CATCH
   ROLLBACK TRAN
  END CATCH
  
  set @i = @i + 1
 END 
 
 set @curDate2 = GETDATE()
 print 'DateDiff:'
 print DateDiff("s",@curDate1,@curDate2)
 
END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值