RavenDB插入性能

时间:2019-03-21 17:45:08

标签: nosql ravendb4

我们需要快速存储大量数据,一次存储10万条记录。我正在评估RavenDB,看来我得到的指标很低-存储10k记录大约需要2.5-3秒。

代码与文档中的代码很直接:

 using (IDocumentStore store = new DocumentStore { Urls = new[] { "http://localhost:8080" }, Database = "xxx" })
{
    store.Initialize();
    for (int i = 0; i < 10; i++)
    {
        using (IDocumentSession session = store.OpenSession())  
        {
            var things = DataGenerator.GenerateListOfThings(); // gets me a 10k objects
            foreach (var thing in things)
            {
                session.Store(thing);
            }
            session.SaveChanges();
        }
    }
}

“事物”对象是具有约20个属性的平面对象,对此没有什么特殊之处。

我还尝试保存1000个实体的块,这将运行时间缩短了约10%,并将批量加载的结果提高了。

Raven在具有i7,SSD和16Gb ram的计算机上以默认配置在docker容器中运行。 文档中说到“在商品硬件上进行15万次写入”,但我看不到有任何类似的东西。 我想念什么吗?

1 个答案:

答案 0 :(得分:2)

使用批量插入将获得更好的性能,请参见此处: https://ravendb.net/docs/article-page/4.1/Csharp/client-api/bulk-insert/how-to-work-with-bulk-insert-operation#example

并行化插入将获得更好的性能。