私は現在、同等のクエリを持つ比較的大きなデータセットで、PostgresとMongoDBの2つのデータベースをベンチマークしています。もちろん、私はそれらを平等な立場に置くために最善を尽くしていますが、私には一つのジレンマがあります。 Postgresの場合、実行時間はEXPLAIN ANALYZE
であり、MongoDBと同様のコンセプトがあり、プロファイリングを使用しています(同等ではありませんが、millis
)。データベースベンチマーク:データ転送/プロトコルの待ち時間を含める必要がありますか?
しかし、PgAdminやmongo
CLIクライアントから、または監視対象のC#アプリから実行すると、異なる時刻が観測されます。その時間には、転送レイテンシとおそらくプロトコルの違いも含まれます。たとえば、PgAdminは実際には実行時間を完全に変形させるようです(明らかに結果のレンダリング時間が含まれています)。
問題は、アプリケーションが実際にそのデータを消費するため、「受信側」で実際に時間を測定する意味がありますか?あるいは、あまりにも多くの変数を含むだけで、実際のデータベースのパフォーマンスに何らかの貢献をしないのですか?報告されたDBMSの実行時間を守るべきでしょうか?