Настройка производительности Calcite sql - PullRequest
0 голосов
/ 21 февраля 2019

Я использую кальцит, чтобы выполнить какую-то работу sql, ниже приведен простой тестовый код:

String json = "{\"DATA\":{\"CAR_NO\":123123},\"USER_ID\":300,\"USER_NAME\":\"user1\"}";
    ResultSet resultSet = null;
    long begin = System.currentTimeMillis();

    for (int j = 0; j < 1000; j++) {
        Statement statement = connection.createStatement();

        rootSchema.add("testDB", new JsonSchema("testTAB", json));

        resultSet = statement.executeQuery(
                "select * from \"testDB\".\"testTAB\" where USER_ID =300 order by USER_ID desc ");

        while (resultSet.next()) {
            JSONObject jo = new JSONObject();
            int n = resultSet.getMetaData().getColumnCount();
            for (int i = 1; i <= n; i++) {
                jo.put(resultSet.getMetaData().getColumnName(i), resultSet.getObject(i));
            }
        }

        resultSet.close();
        statement.close();
        connection.close();
    }

    System.out.println("Time elapsed:" + (System.currentTimeMillis() - begin));

Время выполнения для кальцита кажется мне медленным, требуется 13 секунд, чтобы цикл for выполнялся 500 раз,22 секунды 1000 раз. И я считаю, что statement.executeQuery занимает большую часть времени
Есть какие-нибудь подсказки для настройки производительности?Спасибо

...