2016-05-17 565 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。我正在使用社区版,但很高兴知道我们是否决定迁移到企业版。 –