2

我可以通过网络界面很好地执行下面的这个查询。几乎不需要任何时间来完成。

SELECT from Person;

但是当我尝试从我的 Java 应用程序中执行此操作时,它需要超过 17 秒才能完成。

我使用的代码基本上是这两行:

OrientGraph graph = new OrientGraph("remote:93.x.x.x/test");
OCommandRequest req = graph.command(new OCommandSQL(query));
req.execute();

难道是REST请求慢得多?Web 界面使用 plocal(我猜),而我的 Java 应用程序使用远程连接。

4

1 回答 1

2

尝试也从控制台运行相同的查询。在控制台中花费的时间应该大致相同(只是比在 java 中慢一点)。我做了一个插入 100,000 个顶点类人的测试。执行各种查询响应时间为:Studio = 7.72 秒,控制台 = 2,043 秒,Java = 1:23 到 1:41 秒 在此处输入图像描述

如果收入来自一个非常不同的时间,那么 java 中可能有问题。您已显示“OCommandSQL”,请使用“OSQLSynchQuery”检查是否有很大差异。

    String query = "";
    Iterable<Vertex> result;

    query = "select from Persona";

    //query with OSQLSynchQuery
    result = g.command(new OSQLSynchQuery<Vertex>(query)).execute();
    List<OrientVertex> listVertex = new ArrayList<OrientVertex>();
    CollectionUtils.addAll(listVertex, result.iterator());

    //query with OCommandSQL        
    OCommandRequest req = g.command(new OCommandSQL(query));
    req.execute();
于 2016-01-22T16:55:47.213 回答