如何在OrientDB .Net API中创建Massiveinsert?

时间:2015-12-30 13:12:12

标签: c# .net orientdb

我正在使用OrientDB-NET Library,但没有找到任何有效的批量插入解决方案。目前我在使用以下代码时有大约6K顶点的1M边缘,在我的机器Core i7 6th Gen,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 + "  ");

    }
});             

1 个答案:

答案 0 :(得分:1)

如果您要将多个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),加速度非常高。