0

私は、複数の (種類の) データベースをテストおよび比較できるデータ アクセス層を備えた単純な DBTester プログラムの作成に忙しくしています。現在、SQL Server と MarkLogic NoSQL の Add(Insert) を実装しています。

驚いたことに、MarkLogic XCC/.Net XQuery を使用すると、SQL Server 2008 R2 を使用するよりも 100 万個の個人エンティティを挿入/追加するのに時間がかかります。SQL Server は、データ アクセス レイヤーで 11654 ミリ秒に 11 秒かかる数分かかります。MarkLogic 8 は、15 分以上で 15621 のエンティティでまだビジー状態です!

私は NoSQL MarkLogic と XCC/XQuery を初めて使用し、何か間違ったことをしている可能性があります。MarkLogic のテスト コードは GitHub にあります: https://github.com/driekus77/DBTester/blob/master/DBTester/DataAccessLayer/Repository/MarkLogic/PersonRepository.cs#L48

対応する SQLServer Add コードは、 https ://github.com/driekus77/DBTester/blob/master/DBTester/DataAccessLayer/Repository/SQLServer/PersonRepository.cs#L64 にあります。

それで、私は何を間違っていますか?MarkLogic RestAPI ダイレクトを使用する必要がありますか? XML の代わりに JSON を使用する必要がありますか? XQuery Add 呼び出しを高速化する方法はありますか?

助けてくれてありがとう!

4

2 に答える 2

3

私の元のコメントを参照してください。さらに、単一の「個人」CML ドキュメントにアイテムを挿入していることにも注意してください。それは MarkLogic が好むものではありません。一人一人が別々の記録になることを意図しています。それ以外の場合 - これはトランザクション データベースであるため、insert-child の各呼び出しは同じドキュメントであるためブロックされます。

于 2015-11-15T14:44:42.853 に答える