2016-05-17 23 views
2

複雑な生物学的データの統合と解析のために特別に構築されたデータウェアハウスのために、Neo4jをPostgresの代替案として評価し始めました。 私はNeo4jにいくつかのテーブルをインポートし、いくつかの関連するクエリの実行時間のベンチマークを開始しました。 私はそれらを測定する最良の方法が何であるか疑問に思っていました。私はneo4j-shellツールを使用していますが、これが最善のアプローチであるとは確信していません。おそらく、Java APIを使用して小さなクライアントを実装するか、Traversalフレームワークが優れていますか? そして、neo4j-shellを使って、クエリの実際の実行時間を測定します(結果を出力する時間ではありません)。 PROFILEを使用しますか? ありがとう!neo4jのクエリの実行時間

答えて

0

グラフデータベースの最新の世界へようこそ。

Neo4Jブラウザコンソールでは、各cypher文を入力すると実行時間からの印刷が提供されます。 私が知っている限り、これは実行時間であり、視覚化プラグインを使用して結果を表示するのにかかる時間ではありません。

あなたがこれに満足しておらず、より正確な結果/信頼できる結果を望む場合は、私が考えることができる2つのオプションがあります。

  1. Javaストアド・プロシージャ(のNeo4j 3.0以上 )またはextend the serverに管理されていない拡張機能を作成するためのJava APIを使用してください。それは
  2. はのNeo4jと同じVM /マシン上で簡単なAPIサーバーを作成します(これは3.0で大幅に改善されましたが)サイファー 問い合わせプランナによって制限されていないと が、それは時間を監視しているので、これはfaster much以上であることDBからのリクエストを レスポンスに持ち帰り、返信します。私は、NodeJS ServerでのAPIリクエスト時間を記録してクエリを最適化できるようなものがあります。これは、新しい高性能のBOLTインターフェイスを使用した場合、悪いオプションではありません。オプション1はもっと速いはずですが。
+1

素晴らしい!私は間違いなく最初のオプションを試してみます。ありがとう! –

+0

うれしい私は助けることができます。これがあなたを助けた場合は、回答としてマークしてください。 – Anomaly211

+1

neo4jブラウザに表示されている時間については、実際のクエリの実行時間だけでなく、遅延やシリアライゼーションのコストも含まれていますが、正確なタイミングに頼らないでください。 https://neo4j.com/developer/guide-neo4j-browser/ – Patty

0

Neo4jのEnterprise Editionでは、送信したすべてのクエリのログを有効にすることができます。 dbms.logs.query.*から始まるすべての設定オプションをhttp://neo4j.com/docs/operations-manual/current/#config_dbms.logs.query.enabledから参照してください。

だけconf/neo4j.confに改正:

dbms.logs.query.enabled=true 

設定オプションは異なる命名規則を持っていたのNeo4jの古い(別名2.xの)バージョンのことに注意してください。

+0

Stefanに感謝します。私はCommunity Editionを使用していますが、エンタープライズ版に移行することを決めたのは良いことです。 –

関連する問題