我正在使用 OrientDB-NET Library但没有找到任何有效的批量插入解决方案。我在近 6K 顶点之间有 1M 边,目前我正在使用以下代码,在我的机器 Core i7 第六代,2.5GHz,8GB RAM 上需要大约 30 分钟(与 SQL Server 数据加载相比,性能确实最差)。
在 Java API 中找到了 MassiveInsert 的解决方案。但是在.NET 中没有找到任何解决方案。
object locker = new object();
Parallel.ForEach(_listRating, r=>
{
lock (locker)
{
oDB.Command(" create edge rated from (select from Users where userID = " + r.userID + ") to (select from Movies where MovieID = " + r.movieID + " ) set rating =" + r.Ratings + " ");
}
});
最佳答案
如果你想发送多个 create edge
作为一个查询使用 SQL Batch
begin;
CREATE EDGE E FROM #34:3349 TO #32:3349;
CREATE EDGE E FROM #41:10971 TO #33:3348;
...
commit retry 100;
在我的例子 (PHP) 中,加速度非常高。
关于c# - 如何在 OrientDB .Net API 中执行 Massiveinsert?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34530248/