繁体   English   中英

在Virtuoso服务上使用Jena的SPARQL查询执行时间

[英]SPARQL Query Execution time using Jena on a Virtuoso service

所以我正在使用Virtuoso SPARQL端点,并且正在使用Jena对其进行查询。 我使用QueryFactoryQueryExecution创建SPARQL查询:

    Query query = QueryFactory.create(sparqlQueryString1);
    QueryExecution qexec = QueryExecutionFactory.sparqlService("http://localhost:8890/sparql", query);
    ResultSet results = qexec.execSelect();

现在,我想计算运行此查询所花费的时间。 如何在Virtuoso上使用耶拿找​​到这样的时间? 那可能吗? 显然,我确实查看过诸如getTimeOut1()getTimeOut2()类的函数。 他们似乎没有给我任何好的指导。 作为黑客,我尝试使用Java的内置System.currentTimeMillis() ,但是我不确定这是否正确。 关于如何找到执行时间的任何指示将不胜感激!

结果以流的形式返回,因此计时需要从qexec.execSelect()之前到应用程序完成处理结果之后的时间范围内,而不仅仅是调用execSelect

Timer timer = new Timer() ;
timer.startTimer() ;
ResultSet results = qexec.execSelect();
ResultSetFormatter.consume(results) ;
long x = timer.finishTimer() ;   // Time in milliseconds.

目前尚不清楚您是要安排整个往返行程的时间,还是只是维塔索索在事情上花费的时间...

Virtuoso 7使您可以使用profile功能获得查询的编译(查询计划)和执行时间。

您还可以使用prof_enable函数启用常规查询日志记录和性能分析。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM