批量写数据库带来的问题

ouyang4683 2010-03-04 09:56:59
系统异步传来N多SQL文
“不想”每传来一条就提交一次,
所以想实现:攒到N条SQL一次性提交

这样,带来一个问题,攒多少条才提交?

自己想的话,要么计数,统计到多少条了提交;
这个的话,感觉效率不高,每回都得if语句判断一下
要么计时,每多长时间间隔提交;
这个又不点不靠谱,如果某个时间点上一个爆发收到数据量溢出。。。


想问问 别人还有什么好想法的^_^

谢谢




。。。。没分了,请担待
...全文
87 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
存储过程可以解决楼主的问题,它把所有的SQL 语句编译成一个查询计划
bluedoctor 2010-03-04
  • 打赏
  • 举报
回复
一条if语言判断数量你也在乎这个性能?按数量和时间两者结合吧。
whb147 2010-03-04
  • 打赏
  • 举报
回复
SQL的字符长度有限制的,最长8000个
你的SQL要是太长了,就会报错的
加油馒头 2010-03-04
  • 打赏
  • 举报
回复
帅哥 有批处理的

网上一大堆

只有一次提交多条 效率是最高的。。。

其他的什么一次一条,延时提交都不咋地
vrhero 2010-03-04
  • 打赏
  • 举报
回复
去研究一下缓存技术,不要纠缠在SQL语句上...
SQL77 2010-03-04
  • 打赏
  • 举报
回复
引用 4 楼 ouyang4683 的回复:
存储过程。。。好像不太适合


是这样的,远程丢过来很多SQL语句  不同表的插入语句

我直接存成长的string  了 

如果没别思路的话。。。就只能判断长度存库了

不同表的插入也没关系
用定长来吧,写在一个事务里面一起提交
JOCLI 2010-03-04
  • 打赏
  • 举报
回复
感觉定长比定时好些,当然如果两都能结合效果更好
ouyang4683 2010-03-04
  • 打赏
  • 举报
回复
存储过程。。。好像不太适合


是这样的,远程丢过来很多SQL语句 不同表的插入语句

我直接存成长的string 了

如果没别思路的话。。。就只能判断长度存库了

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧