大量数据导入sql数据库问题

遇到一个问题,我需要从一个网络服务器读取数据再插入到本地sql数据库。从网络服务器读取的数据是xml字符串格式,因为数据很多,需要从网络服务器多次分页获取xml数据,每次获取100条数据再读取字符串存放在dataset缓存中。
我将本地数据库表结构字段等设计和网络服务器一样。用了多个办法不行,请高手指点。
方法1、dataset通过逐条读取数据,组织插入sql语句插入到本地数据库,循环操作。但数据总只能插入几十条数据。请问什么问题,是否是循环插入速度过快,数据库插入操作未来得及响应么?如果改成存储过程,是否可以解决这个问题。

方法2、使用dataset填充本地数据库,能够成功插入几千条条数据,但之后就不插入了,是否是缓存未清理导致满的问题?而且dataset插入有个问题,本地数据库需有主键,如果已插入的数据再插入会主键重复报错,有其他办法解决么?
我在c#.net中开发,网络服务器数据动态的,不能全部下载下来

第1个回答  2014-01-01
方法1:但数据总只能插入几十条数据。请问什么问题,
应该是你插入的数据不符合约束条件造成的,可以去掉数据库的约束定义,也可以在程序中设置检测语句,
方法2:使用dataset填充本地数据库,能够成功插入几千条条数据,但之后就不插入了,
这个问题没怎么遇见过。应该不存在缓存未清理导致满的问题,你多设置断点调试,
如果已插入的数据再插入会主键重复报错,这是正常的。你去掉主键约束,或不插入重复值就可以了
第2个回答  2014-01-01
第二个问题我遇到过一次,不过那是在我没有把数据库连接给关闭的情况下,如果没次插入后都主动的把数据库连接给关闭后,我就不出现这个问题了,你那可能是数据库的连接数目已达到SQL Server 的最大连接数了,你可以查一下试试

大量数据导入sql数据库问题
应该是你插入的数据不符合约束条件造成的,可以去掉数据库的约束定义,也可以在程序中设置检测语句,方法2:使用dataset填充本地数据库,能够成功插入几千条条数据,但之后就不插入了,这个问题没怎么遇见过。应该不存在缓存未清理导致满的问题,你多设置断点调试,如果已插入的数据再插入会主键重复报错,这...

怎样将程序产生的大量数据插入sql数据库?
要将程序产生的大量数据插入SQL数据库,可以使用SQL的INSERT INTO语句。以下是一些基本步骤:打开数据库连接。这可以使用数据库客户端或编程语言中的数据库库完成。在代码中使用INSERT INTO语句将数据插入数据库表中。确保您提供正确的列和值。您可以一次插入多个行,以减少数据库交互次数。检查是否有任何错误...

如何解决大量数据导入到数据库?
针对你说的第二个问题:追加导入和更新导入,其实这就是一种方法的两个方面,若是数据库里没有数据,则追加,否则更新;这里提醒一下:注意锁定表 第三个问题:数十万级为单位是指百万还是千万数据?数据量大的情况下注意其SQL的优化 第四:比较简单的方式是:不管数据库里有没有数据需要更新,都先...

请教如何将excle上面的数据批量导入至sql2008数据库
第一步:登录到 SQL Server Management Studio 第二步:在 “对象资源管理器 ”中右键单击 “管理 ”,在弹出列表中单击 “导入数据 ”第三步:在 “导入向导 ”对话框中单击 “下一步 ”,进入到 “选择数据源 ”对话框,在 “数据源 ”列表中选择 “Microsoft Excel ”,同时选择相应的 Excel...

SQL数据库一个表存多少数据不会影响速度,我的程序数据量很大,每天都...
如表有100条记录,语句是判断字段a>1,只要比较100次,表有100W条记录,要判断字段a>1,需要比较100W次,会慢点,其实每天的数据量这么大,只是用来存放还是用来做查询使用的,一年前的数据或者更久之前的是否不用?如果不用可以分表存放的,一张表放的数据越多,肯定会越慢的。

如何将Excel数据导入SQL Server数据库
方法一:使用SQL Server管理工具 1. 打开SQL Server Management Studio(SSMS)并连接到目标数据库实例。2. 在“对象资源管理器”窗口中,选择数据库中的目标表。3. 右键单击该表,在上下文菜单中选择“任务”>“导入数据”。4. 在“导入向导”对话框中,选择“Microsoft Excel”作为数据源,点击“下...

oracle大量数据进行入库操作
你的理解是正确的,可以这样做。生成固定格式的数据文件,然后可以使用oracle的数据加载工具sqlldr进行直接插入数据,效率上会好很多,在并发的情况下,oracle声称可以每小时100G的数据量。

用mysql导入外部sql文件建立数据库,但sql文件很大,将近24G,导入时提示...
24g太大了,即使修改某些参数不一定会导入成功,用navicat for mysql这个工具试试,我也有类似的情况

如何把大型的sql脚本导入sql数据库
用脚本语言如perl\/python对该文件进行加工,每隔5000行加一行"go"然后在命令行中用 osql -E -d"thedatabasename" -i"thesqlfilename" 命令即可

请有经验的DBA进来回答一下,sqlserver大批量数据迁移问题
我的想法就是将你的所有动作分解,一个个完成。这样出问题也能及时解决,而且互不影响。如果从sqlserver导出数据的同时还需要往sqlserver中插入数据,那么我推荐插入的数据放入一个新表中,最后将这个新表的数据也导出来再导入。3 导入到oracle数据库中。1)做好详细规划。删除不必要的数据大概还有接近...

相似回答