neo4j基准测试,多个查询,测量时间

时间:2014-10-16 13:02:16

标签: neo4j

有什么方法可以在neo4j中为多个查询执行我的基准测试?

假设我已经加载了我的图表,我想在数据库中启动10000个不同的最短路径查询,而不将数据加载到客户端。有没有办法可以批量执行此操作并获得执行时间?

2 个答案:

答案 0 :(得分:3)

尝试使用neo4j-shell中的profile keyword。这将为您提供有关查询执行速度和查询速度的基本事实。

这是一个简单的例子:

neo4j-sh (?)$ CREATE (a {label:"foo"})-[:bar]->(b {label: "bar"})-[:bar]->(c {label: "baz"});
+-------------------+
| No data returned. |
+-------------------+
Nodes created: 3
Relationships created: 2
Properties set: 3
1180 ms
neo4j-sh (?)$ profile match (a {label: "foo"}), (c {label: "baz"}), p=shortestPath(a-[*]-c) return p;
+--------------------------------------------------------------------------------------+
| p                                                                                    |
+--------------------------------------------------------------------------------------+
| [Node[0]{label:"foo"},:bar[0]{},Node[1]{label:"bar"},:bar[1]{},Node[2]{label:"baz"}] |
+--------------------------------------------------------------------------------------+
1 row

ColumnFilter
  |
  +ShortestPath
    |
    +Filter(0)
      |
      +AllNodes(0)
        |
        +Filter(1)
          |
          +AllNodes(1)

+--------------+------+--------+-------------+-----------------------------------------+
|     Operator | Rows | DbHits | Identifiers |                                   Other |
+--------------+------+--------+-------------+-----------------------------------------+
| ColumnFilter |    1 |      0 |             |                          keep columns p |
| ShortestPath |    1 |      0 |           p |                                         |
|    Filter(0) |    1 |      6 |             | Property(c,label(0)) == {  AUTOSTRING1} |
|  AllNodes(0) |    3 |      4 |        c, c |                                         |
|    Filter(1) |    1 |      6 |             | Property(a,label(0)) == {  AUTOSTRING0} |
|  AllNodes(1) |    3 |      4 |        a, a |                                         |
+--------------+------+--------+-------------+-----------------------------------------+

This other answer表示您通常会寻找较低DbHits值来表示更好的效果,因为这些价格昂贵。

答案 1 :(得分:3)

WebAdmin工具(通常位于http://localhost:7474/webadmin/用于本地neo4j安装),有Data browserConsole个标签,可让您输入查询,查看结果,还可以查看执行查询所花费的实际时间。

有趣的是,通过对Data browserConsole标签的有限测试,后者似乎报告了相同查询的查询时间更快。因此,控制台可能具有较少的开销,可能使其时序结果更准确。