在服务器上插入记录很慢

zhangzhicong 2009-06-03 06:45:46
服务器是这样的环境,asp.net 2.0, windows server 2000。
是从TXT文件导入到数据库,用的是INSERT INTO 插入的。
在本地测试是很快的,19万条记录 用时2分钟。
但是在服务器上就很慢,很慢,半个小时有时还不能完成。
(曾经尝试改用BCP,但是因为表本身有一列是流水号,搞了好久都处理不了,还是放弃了。)
用事件分析器跟踪过,运行的语句都一样的。
求大家帮忙,可能是那里出问题了。

...全文
88 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzhicong 2009-06-04
  • 打赏
  • 举报
回复
5楼的大哥,说的有一定的道理,但是你说“在你自己的电脑上“插入”数据,然后把数据还原到服务器就可以了。这类东西,看似笨拙的手工操作比追求完美地技术操作要更有效。”,在我们这里的不太现实,因为我们给客户做的,是客户经常导如数据分析。
wanghao3616 2009-06-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sp1234 的回复:]
实际上,如果表中原来有数据,特别是你的表有唯一性索引或者有触发器或者插入时要查询原始数据(例如避免重复插入)等等操作,那么原本5分钟的插入一批数据的动作可能就变成了5个小时也完成不了。所以批量插入往往需要首先取消一切索引、触发器、过程等,然后简单地插入,插入完成再把索引等等重新设置会表上。

在你自己的电脑上“插入”数据,然后把数据还原到服务器就可以了。这类东西,看似笨拙的手工操作比追求完美地技术…
[/Quote]
  • 打赏
  • 举报
回复
实际上,如果表中原来有数据,特别是你的表有唯一性索引或者有触发器或者插入时要查询原始数据(例如避免重复插入)等等操作,那么原本5分钟的插入一批数据的动作可能就变成了5个小时也完成不了。所以批量插入往往需要首先取消一切索引、触发器、过程等,然后简单地插入,插入完成再把索引等等重新设置会表上。

在你自己的电脑上“插入”数据,然后把数据还原到服务器就可以了。这类东西,看似笨拙的手工操作比追求完美地技术操作要更有效。

如果你经常需要插入16万数据,那么就应该考虑你的系统设计是否有问题了。最终还是回到上面的做法:凌晨时分将数据卸载下来,然后运行批量插入程序,结束后再将数据文件直接拷贝到服务器上去恢复成数据库。
zhangzhicong 2009-06-03
  • 打赏
  • 举报
回复
带宽也不会,因为文件是先上传后再导入数据库的,而且文件不大。
zcxverygood123456 2009-06-03
  • 打赏
  • 举报
回复
在本机是正常的,可以排除不是程序问题。
有两个可能:
第一:你的带宽到服务器有问题。
第二:就是服务器本身问题或设置限制问题。
chen_ya_ping 2009-06-03
  • 打赏
  • 举报
回复
有时也跟网络有关的。
zhangzhicong 2009-06-03
  • 打赏
  • 举报
回复
自己顶一下

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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