没有合适的资源?快使用搜索试试~ 我知道了~
首页Sqlserver大数据量插入速度慢或丢失数据的解决方法
资源详情
资源评论
资源推荐

hp://m.jb51.net/arcle/51847.htm
针对 Sqlserver 大数据量插入速度慢
或丢失数据的解决方法
投稿:shichen2014
这篇文章主要介绍了针对 Sqlserver 大数据量插入速度慢或丢失数据的解决方法,很有实
用价值,需要的朋友可以参考下
我的设备上每秒将 2000 条数据插入数据库,2 个设备总共 4000 条,当在程序里面直接
用 insert 语句插入时,两个设备同时插入大概总共能插入约 2800 条左右,数据丢失约
1200 条左右,测试了很多方法,整理出了两种效果比较明显的解决办法:
方法一:使用 Sql Server 函数:
1.将数据组合成字串,使用函数将数据插入内存表,后将内存表数据复制到要插入的表。
2.组合成的字符换格式:'111|222|333|456,7894,7458|0|1|2014-01-01
12:15:16;1111|2222|3333|456,7894,7458|0|1|2014-01-01 12:15:16',每行数据
中间用“;”隔开,每个字段之间用“|”隔开。
3.编写函数:
CREATE FUNCTION [dbo].[fun_funcname](@str
VARCHAR(max),@splitchar CHAR(1),@splitchar2 CHAR(1))
--定义返回表
RETURNS @t TABLE(MaxValue >oat,Phase int,SlopeValue >oat,Data
varchar(600),Alarm int,AlmLev int,GpsTime datetime,UpdateTime
datetime) AS
/*
author:hejun li
create date:2014-06-09
*/
BEGIN
DECLARE @substr VARCHAR(max),@substr2 VARCHAR(max)
--申明单个接收值
declare @MaxValue >oat,@Phase int,@SlopeValue >oat,@Data
varchar(8000),@Alarm int,@AlmLev int,@GpsTime datetime
SET @substr=@str
DECLARE @i INT,@j INT,@ii INT,@jj INT,@ijj1 int,@ijj2 int,@m
int,@mm int
SET @j=LEN(REPLACE(@str,@splitchar,REPLICATE(@splitchar,2)))-
LEN(@str)--获取分割符个数
IF @j=0

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0