我想将数据插入到大小为 1GB 的数据库中。我当前正在使用 LINQ-to-Entities 查询数据库。
问题是数据库很大 - 我不想只是为了进行插入而将整个数据库拉入内存。
您推荐的将数据插入特定表的方法是什么,相当有效?
更新:
我应该澄清一下,我正在将数据插入到一个表中,该表链接到具有一对多关系的其他两个表。有没有一种方法可以让ADO框架处理主/外键关系的更新?
更新:
找到正确答案,参见How do I use LINQ-to-Entities to insert data into a specific table?
最佳答案
由于数据量较大,您可以使用存储过程。或者您可以使用数据创建一个文件,逐行读取它,然后使用 Linq 逐行插入行,这样数据就不会同时加载到内存中
为什么应该使用存储过程?让我们来看看这项技术的主要优点: 预编译执行。 SQL Server 对每个存储过程编译一次,然后重新利用执行计划。当重复调用存储过程时,这会带来巨大的性能提升。 减少了客户端/服务器流量。如果网络带宽是您环境中的一个问题,您会很高兴地了解到存储过程可以将长 SQL 查询减少到通过线路传输的单行。 代码和编程抽象的高效重用。存储过程可由多个用户和客户端程序使用。如果您有计划地使用它们,您会发现开发周期花费的时间更少。 增强的安全控制。您可以授予用户独立于基础表权限执行存储过程的权限。 在 MSSQL 中,语言是 Transact-SQL (T-SQL)。
关于sql - 我有一个到数据库的 LINQ-to-Entities 连接 - 如何将数据插入到该数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4923735/