我目前使用的是NHibernate。在这种情况下,我需要将一堆记录保存到数据库中,如下所示:
var relatedTopics = GetRelatedTopics(topic);
foreach (var relatedTopic in relatedTopics /* could be anywhere from 10 - 1000+ */)
{
var newRelatedTopic = new RelatedTopic { RelatedTopicUrl = relatedTopic, TopicUrl = topic.Name };
_repository.Save(newRelatedTopic);
}当有大量记录要保存时,这显然是非常繁重的,必须多次访问数据库。什么是更好的方法?有没有什么我可以做的批量更新?我使用DataSet会更好吗?
谢谢
发布于 2009-06-11 17:11:28
插入记录的最快方法是生成文本文件并使用LOAD file语法。大多数数据库在将数据文件导入数据库时都有非常快的实现。对于MySQL,请参见下面的内容:
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
对于其他数据库,请参阅相应的手册。如果您要频繁插入一百万条记录或数千条记录,这将非常有用。否则,最好的方法就是创建一个包含数千个插入的大型SQL,并直接在数据库连接上执行它,跳过ORM及其相关的验证。
https://stackoverflow.com/questions/982295
复制相似问题