From a310e751bb113313338d5cd3725e639deaa254f4 Mon Sep 17 00:00:00 2001 From: catbref Date: Tue, 10 Nov 2020 16:58:24 +0000 Subject: [PATCH] Fix slow SQL query in HSQLDBATRepository.getBlockATStatesAtHeight() - mostly used during orphaning --- .../org/qortal/repository/hsqldb/HSQLDBATRepository.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/qortal/repository/hsqldb/HSQLDBATRepository.java b/src/main/java/org/qortal/repository/hsqldb/HSQLDBATRepository.java index f49da36d..82af283b 100644 --- a/src/main/java/org/qortal/repository/hsqldb/HSQLDBATRepository.java +++ b/src/main/java/org/qortal/repository/hsqldb/HSQLDBATRepository.java @@ -374,9 +374,10 @@ public class HSQLDBATRepository implements ATRepository { @Override public List getBlockATStatesAtHeight(int height) throws DataException { String sql = "SELECT AT_address, state_hash, fees, is_initial " - + "FROM ATStates " - + "LEFT OUTER JOIN ATs USING (AT_address) " - + "WHERE height = ? " + + "FROM ATs " + + "LEFT OUTER JOIN ATStates " + + "ON ATStates.AT_address = ATs.AT_address AND height = ? " + + "WHERE ATStates.AT_address IS NOT NULL " + "ORDER BY created_when ASC"; List atStates = new ArrayList<>();