数据库 查询超时 运行超时 问题

Q:用C#写个小程序,有两个数据库,A1,A2,现在A1的50张表中有上百万条数据,A2中相对的50张表用truncate table清空,然后将A1的50张表的数据逐表插入到A2的50张表中.有一张表数据就达90多万条,单独插入时还是提示“运行超时”。问下高手,这样情况如何解决呢?

A:把超时时间设长 SQL菜单——》工具——》选项  查询超时 选项 改为0。

多线程+分段;

做到导入导出数据包吧 ssis执行包。。程序调用;

SqlCommand类的默认超时是30秒,你需要修改那个CommandTimeout属性才行。

另外如果你是数据库直接可以直接访问的话,通过链接服务器来操作会更好,直接在数据库里面执行了。

用SQLDBCOPY对象,设定好timeout超时间隔!

导入导出工具:tollin 下的dtswiz.exe直接搞定。2005取消了这个工具,所以在05目录下是没有的。sqlserver2000下有

写代码的话你必须用存储过程,建索引。。。效率差的不止一点。想在代码中sqlcommand搞定。不用想啦。我测过800m的文本,存储过程+索引 比纯sql代码效率快很多

SqlBulkCopy每秒两万到三万。流形式。

SqlBulkCopy大数据量时超时解决办法

在用SqlBukiCopy时,数据量一到1000000就报下面的错:
异常详细信息: System.Data.SqlClient.SqlException: 超时时间已到。在操作完成之前超时时间已过或服务器未响应。

解决的办法:微软已经给出了解决办法了。只需要按照如下表下载相应的补丁在服务器上安装即可。

对于基于 x86 的计算机
http://download.microsoft.com/download/2/C/5/2C5BCDC9-3241-443A-9F96-4E0B0EDFA727/NDP20-KB916002-X86.exe
对于基于 x64 的计算机

http://download.microsoft.com/download/D/3/9/D39C79DF-4158-45DF-9031-92C52AB0ED19/NDP20-KB916002-X64.exe 

对于基于 Itanium 的计算机

http://download.microsoft.com/download/0/0/3/00392DD3-5B4F-4D99-94E8-6827B8F8D7EF/NDP20-KB916002-IA64.exe

因为公司客户的服务器不允许随便打补丁,最后,只能改用分批处理数据的方法来处理了,还好一样可以解决问题。

自己用BCP解决了。

原文地址:https://www.cnblogs.com/watermarks/p/3245843.html