2

同様の質問:

無料で高性能な SQL クエリ可能な .NET インメモリ RDBMS はありますか? 過去 10 時間以内にいくつかの調査を行いましたが、見つかりませんでした。

SQLite をメモリ モードで試してみましたが、パフォーマンスが良くありません。次のテストは 4130 ミリ秒かかり、SQL Server よりわずか 2 倍高速でした。


Kibbeeが示唆したように、私はプロファイラーを使用してパフォーマンスを調査し、メモリ モードの SQLite が実際にはかなりパフォーマンスが高いことを発見しました。ボトルネックは NHibernate でしたこれは SQLite 3.6.3 のベンチマークです(2008 年 10 月 20 日投稿)。

4

2 に答える 2

2

パフォーマンスが必要な場合は、SQL と RDBMS の部分をスキップしてください。変更ログを含む RAM の単純なデータ構造は、データベースよりも簡単に優れています。ただし、標準で提供されているコレクションよりも優れたコレクションが必要になる場合があります。これは、スケーリングがうまくいかないためです。

于 2011-08-01T16:08:22.180 に答える
2

あなたの問題は、アーキテクチャの問題ではなく、容量の問題のようです。RDBMS は高度に最適化されたアプリケーションですが、依然としてかなりのリソースが必要であり、使用量が多いまたは複雑なほとんどの RDBMS は、通常、ディスクをヒットする必要があります。これはキャッシュにつながります。これは、クエリを毎回再実行するのではなく、特定のクエリ結果をキャッシュしてそれらを提供することにより、多くの大規模なアプリケーションが応答時間を向上させるために使用するものです。Memcached (Linux 上) のようなソフトウェアを使用して、クエリを実行する必要性を減らすことができます。

最後に、キャッシングがオプションでない場合は、単純にアプリケーションにより多くのリソースを提供できます。@marc_sが言ったように、メモリを大幅に増やすことは(メモリを増やすことでボトルネックをCPUに移すため、CPU容量も)使用するのに適した戦略です。

于 2011-07-25T06:50:25.570 に答える