1

簡単な質問:SQL ServerからRavenDBにデータをエクスポートする方法は?

SQL Serverからデータを取得し、レイヴンに保存するスクリプトを作成しましたが、動作が非常に遅くなります。1秒あたり約2500回の挿入。

編集:私のコード

    for (int i = 0; i < count; i+=8196)
    {
        StoreInTaven(WordStats.Skip(i).Take(8196).Select(x => new KeyPhraseInfo(){
           Key = x.Word,
           Id = x.Id,
           Count = x.Count,
           Date = x.Date
        }));
        GC.Collect();
    }



public static void StoreInTaven(IEnumerable<KeyPhraseInfo> wordStats)
{
     using(var session = store.OpenSession())
     {
           foreach (var wordStat in wordStats)
           {
              session.Store(wordStat);
           }

           session.SaveChanges();
     }
}
4

2 に答える 2

1

私はちょうど同じことをしていました。速度は私にとってはそれほど重要ではないので、これがあなたのものよりも速いかどうかはわかりません.

public static void CopyFromSqlServerToRaven(IDocumentSession db, bool ravenDeleteAll=true)
{
    if (ravenDeleteAll) db.DeleteAll();

    using (var connection = new SqlConnection(SqlConnectionString))
    {
        var command = new SqlCommand(SqlGetContentItems, connection);
        command.Connection.Open();
        using (var reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                db.Store(new ContentItem
                            {
                                    Id = reader["Id"].ToString(),
                                    Title = (string)reader["Name"],
                                    Description = (string)reader["ShortDescription"],
                                    Keywords = (string)reader["SearchKeywords"]
                            });
            }
        }
        db.SaveChanges();
    }
}
于 2012-05-29T13:28:29.580 に答える
0

標準サーバーでは、1 秒あたり 1,000 回の書き込みがサポートされていると思います。

キャッシュ サイズを増やすと、パフォーマンスが向上しました。Raven/Esent/CacheSizeMax

http://ravendb.net/docs/server/administration/configuration

于 2012-06-26T18:03:58.493 に答える