Browse Source

Improved performance of ts based query

pull/5903/head
Andrii Shvaika 5 years ago
parent
commit
bfe1daf9ea
  1. 2
      application/src/main/resources/thingsboard.yml
  2. 3
      dao/src/main/java/org/thingsboard/server/dao/sqlts/AbstractChunkedAggregationTimeseriesDao.java
  3. 3
      dao/src/main/java/org/thingsboard/server/dao/sqlts/timescale/TimescaleTimeseriesDao.java

2
application/src/main/resources/thingsboard.yml

@ -504,7 +504,7 @@ spring.servlet.multipart.max-file-size: "50MB"
spring.servlet.multipart.max-request-size: "50MB" spring.servlet.multipart.max-request-size: "50MB"
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation: "true" spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation: "true"
spring.jpa.properties.hibernate.order_by.default_null_ordering: "${SPRING_JPA_PROPERTIES_HIBERNATE_ORDER_BY_DEFAULT_NULL_ORDERING:none}" spring.jpa.properties.hibernate.order_by.default_null_ordering: "${SPRING_JPA_PROPERTIES_HIBERNATE_ORDER_BY_DEFAULT_NULL_ORDERING:last}"
# SQL DAO Configuration # SQL DAO Configuration
spring: spring:

3
dao/src/main/java/org/thingsboard/server/dao/sqlts/AbstractChunkedAggregationTimeseriesDao.java

@ -140,8 +140,7 @@ public abstract class AbstractChunkedAggregationTimeseriesDao extends AbstractSq
query.getStartTs(), query.getStartTs(),
query.getEndTs(), query.getEndTs(),
PageRequest.of(0, query.getLimit(), PageRequest.of(0, query.getLimit(),
Sort.by(Sort.Direction.fromString( Sort.by(new Sort.Order(Sort.Direction.fromString(query.getOrder()), "ts").nullsNative())));
query.getOrder()), "ts")));
tsKvEntities.forEach(tsKvEntity -> tsKvEntity.setStrKey(query.getKey())); tsKvEntities.forEach(tsKvEntity -> tsKvEntity.setStrKey(query.getKey()));
return Futures.immediateFuture(DaoUtil.convertDataList(tsKvEntities)); return Futures.immediateFuture(DaoUtil.convertDataList(tsKvEntities));
} }

3
dao/src/main/java/org/thingsboard/server/dao/sqlts/timescale/TimescaleTimeseriesDao.java

@ -174,8 +174,7 @@ public class TimescaleTimeseriesDao extends AbstractSqlTimeseriesDao implements
query.getStartTs(), query.getStartTs(),
query.getEndTs(), query.getEndTs(),
PageRequest.of(0, query.getLimit(), PageRequest.of(0, query.getLimit(),
Sort.by(Sort.Direction.fromString( Sort.by(new Sort.Order(Sort.Direction.fromString(query.getOrder()), "ts").nullsNative())));;
query.getOrder()), "ts")));
timescaleTsKvEntities.forEach(tsKvEntity -> tsKvEntity.setStrKey(strKey)); timescaleTsKvEntities.forEach(tsKvEntity -> tsKvEntity.setStrKey(strKey));
return Futures.immediateFuture(DaoUtil.convertDataList(timescaleTsKvEntities)); return Futures.immediateFuture(DaoUtil.convertDataList(timescaleTsKvEntities));
} }

Loading…
Cancel
Save