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

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

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

多线程+分段;

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

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

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

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

 

导入导出工具:toll\bin 下的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解决了。

 

posted @   po-A  阅读(2463)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~

Tushare大数据开放社区-免费提供各类金融数据和区块链数据 , 助力智能投资与创新型投资。

Python, Matlab, R, Web数据抽取学习交流。

点击右上角即可分享
微信分享提示