2016-05-17 106 views
2

我剛剛開始評估Neo4j專門爲複雜生物數據的集成和分析而構建的數據倉庫postgres的替代方案。 我已經將一些表導入到Neo4j中,並開始對某些相關查詢的執行時間進行基準測試。 我想知道測量它們的最好方法是什麼。我正在使用neo4j-shell工具,但我不確定這是最好的方法....也許使用Java API或Traversal框架實現一個小型客戶端更好? 如何用neo4j-shell來測量查詢的「真實」執行時間(而不是打印結果的時間!!)?使用PROFILE? 謝謝!neo4j中查詢的執行時間

回答

0

大家好,歡迎來到Graph Databases現存的世界。

當您輸入每個密碼語句時,Neo4J瀏覽器控制檯提供一個輸出執行時間。 據我所知,這是執行時間,而不是使用可視化插件顯示結果所花費的時間。

如果您對此不滿意並希望得到更準確的結果/可靠的結果,我可以考慮兩種選擇。

  1. 使用Java API來創建Java存儲過程(上述的Neo4j 3.0和 )或非託管擴展extend the server。這是 muchfaster,因爲它不是由Cypher支架 查詢計劃的限制(儘管這與3.0顯著改善)
  2. 在同一VM /機作爲Neo4j的創建一個簡單的API服務器和 有它監測一次從請求到數據庫到 響應並將其返回給您。我有類似的東西在我的NodeJS服務器中記錄api請求時間,所以我可以優化查詢。鑑於新的高性能BOLT接口,這不是一個錯誤的選擇。儘管選項1應該仍然更快。
+1

太棒了!我一定會嘗試第一個選項。謝謝! –

+0

很高興能幫到你。如果這能幫助你,請標記爲已回答。 – Anomaly211

+1

關於neo4j瀏覽器中顯示的時間,文檔中提到:「不要依賴確切的時間,儘管它包括延遲和(反)序列化成本,而不僅僅是實際的查詢執行時間。」 https://neo4j.com/developer/guide-neo4j-browser/ – Patty

0

Neo4j企業版允許您啓用記錄您發送的所有查詢。查看所有配置選項,從dbms.logs.query.*開始從http://neo4j.com/docs/operations-manual/current/#config_dbms.logs.query.enabled

只是修正至conf/neo4j.conf

dbms.logs.query.enabled=true 

請注意,對老年人(又名2.X)的Neo4j的版本的配置選項有不同的命名約定。

+0

謝謝Stefan。我正在使用社區版,但很高興知道我們是否決定遷移到企業版。 –