问:
两周前我遇到了以下问题,考虑到性能问题和数据完整性,我不知道如何处理它。
我所做的是:
我想将数据从XML 文件迁移到数据库中的类似表。
例如:
我有两个节点(XML 文件):
类(class)
、老师
两个表(数据库)
类(class)
、老师
。
我允许用户将 XML 文件上传到我的服务器上的文件夹,然后我开始读取 XML 文件并将数据插入到我的数据库中。
问题是:
如果在插入操作过程中发生故障,我想删除所有表中所有插入的记录。(或回滚)。
我开始考虑事务
,每个实体的插入将通过事务执行,但我面临两个问题:
我应该将所有实体的所有插入放入一个事务中还是 交易中一个实体一个实体?(所有实体数据必须全部插入或根本不插入)对于每个上传者。
当我有大量记录时(1500 条记录)。以下 出现异常:
This IfxTransaction has completed; it is no longer usable ,不 一个人就能修复它。
我的团队领导告诉我不要使用交易,因为它会 锁定表并且许多用户使用这些表。他想要其他的 机制。
请问我想要解决我的问题(详细解释),如何处理这种情况并维护性能问题以及数据的完整性和一致性。
最佳答案
这是我们在同一问题中使用的机制,开始将数据保存在临时表中,如果插入临时表后没有异常,则运行一个存储过程将这些临时表的内容复制到真实表中表,然后从临时表中删除*。 这样,您在使用事务机制时就不会锁定对表的访问。 还有另一种机制,但如果你使用它,你必须重新考虑所有数据库结构,它称为 CQRS(对于.NET,有一个称为 NCQRS 的 API)
关于asp.net - 将大数据从xml文件迁移到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6856004/