使用 Neo4j java 驱动程序的 Cypher 查询执行时间

Cypher query execution time with Neo4j java driver

我正在尝试使用 java 驱动程序找出我的 Cypher 查询的执行时间。

Session session = driver.session();
session.run( "CREATE (a:Person {name:'Arthur', title:'King'})" );
StatementResult result = session.run( "Profile MATCH (a:Person) WHERE a.name = 'Arthur' RETURN a.name AS name, a.title AS title" );

但是我在 StatementResult or in the ResultSummary 中的任何地方都找不到它,它是由 StatementResult.consume(query) 返回的。

我可以在 ResultSummary 中访问来自 ProfiledPlan 的数据库命中,但是没有关于时间的信息。

有什么方法可以使用 neo4j java 驱动程序访问 Cypher 查询执行时间?

从 Neo4j Java 驱动程序版本 1.1.0 开始有:

/**
 * The time it took the server to make the result available for consumption.
 *
 * @param unit The unit of the duration.
 * @return The time it took for the server to have the result available in the provided time unit.
 */
long resultAvailableAfter( TimeUnit unit );

/**
 * The time it took the server to consume the result.
 *
 * @param unit The unit of the duration.
 * @return The time it took for the server to consume the result in the provided time unit.
 */
long resultConsumedAfter( TimeUnit unit );

它为您提供了两个时间:

  1. 到第一个字节的时间
  2. 完整的执行时间,包括使用来自服务器的数据

方法位于 org.neo4j.driver.v1.summary.ResultSummary 接口上。