From 4d235dc0b68b64ab95fe2df8964e1ad7fe30ea41 Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Sun, 20 Jan 2019 15:26:10 +0200 Subject: [PATCH] Refactored TPSTable#getAllTPS to a query --- .../sql/queries/batch/LargeFetchQueries.java | 55 +++++++++++++++++-- .../plan/db/sql/tables/TPSTable.java | 44 --------------- .../sql/tables/move/BatchOperationTable.java | 2 +- 3 files changed, 52 insertions(+), 49 deletions(-) diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/sql/queries/batch/LargeFetchQueries.java b/Plan/common/src/main/java/com/djrapitops/plan/db/sql/queries/batch/LargeFetchQueries.java index d3d1fea0a..183186e4d 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/db/sql/queries/batch/LargeFetchQueries.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/db/sql/queries/batch/LargeFetchQueries.java @@ -17,10 +17,8 @@ package com.djrapitops.plan.db.sql.queries.batch; import com.djrapitops.plan.data.WebUser; -import com.djrapitops.plan.data.container.GeoInfo; -import com.djrapitops.plan.data.container.Ping; -import com.djrapitops.plan.data.container.PlayerKill; -import com.djrapitops.plan.data.container.Session; +import com.djrapitops.plan.data.container.*; +import com.djrapitops.plan.data.container.builders.TPSBuilder; import com.djrapitops.plan.data.store.objects.Nickname; import com.djrapitops.plan.db.access.Query; import com.djrapitops.plan.db.access.QueryAllStatement; @@ -376,4 +374,53 @@ public class LargeFetchQueries { return sessions; }; } + + /** + * Query database for TPS data. + * + * @return Map: Server UUID - List of TPS data + */ + public static Query>> fetchAllTPSData() { + String serverIDColumn = ServerTable.TABLE_NAME + "." + ServerTable.Col.SERVER_ID; + String serverUUIDColumn = ServerTable.TABLE_NAME + "." + ServerTable.Col.SERVER_UUID + " as s_uuid"; + String sql = "SELECT " + + TPSTable.Col.DATE + ", " + + TPSTable.Col.TPS + ", " + + TPSTable.Col.PLAYERS_ONLINE + ", " + + TPSTable.Col.CPU_USAGE + ", " + + TPSTable.Col.RAM_USAGE + ", " + + TPSTable.Col.ENTITIES + ", " + + TPSTable.Col.CHUNKS + ", " + + TPSTable.Col.FREE_DISK + ", " + + serverUUIDColumn + + " FROM " + TPSTable.TABLE_NAME + + " INNER JOIN " + ServerTable.TABLE_NAME + " on " + serverIDColumn + "=" + TPSTable.Col.SERVER_ID; + + return new QueryAllStatement>>(sql, 50000) { + @Override + public Map> processResults(ResultSet set) throws SQLException { + Map> serverMap = new HashMap<>(); + while (set.next()) { + UUID serverUUID = UUID.fromString(set.getString("s_uuid")); + + List tpsList = serverMap.getOrDefault(serverUUID, new ArrayList<>()); + + TPS tps = TPSBuilder.get() + .date(set.getLong(TPSTable.Col.DATE.get())) + .tps(set.getDouble(TPSTable.Col.TPS.get())) + .playersOnline(set.getInt(TPSTable.Col.PLAYERS_ONLINE.get())) + .usedCPU(set.getDouble(TPSTable.Col.CPU_USAGE.get())) + .usedMemory(set.getLong(TPSTable.Col.RAM_USAGE.get())) + .entities(set.getInt(TPSTable.Col.ENTITIES.get())) + .chunksLoaded(set.getInt(TPSTable.Col.CHUNKS.get())) + .freeDiskSpace(set.getLong(TPSTable.Col.FREE_DISK.get())) + .toTPS(); + + tpsList.add(tps); + serverMap.put(serverUUID, tpsList); + } + return serverMap; + } + }; + } } \ No newline at end of file diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/TPSTable.java b/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/TPSTable.java index a0c038425..fc6b45964 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/TPSTable.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/TPSTable.java @@ -222,50 +222,6 @@ public class TPSTable extends Table { return getPeakPlayerCount(getServerUUID(), afterDate); } - public Map> getAllTPS() { - String serverIDColumn = serverTable + "." + ServerTable.Col.SERVER_ID; - String serverUUIDColumn = serverTable + "." + ServerTable.Col.SERVER_UUID + " as s_uuid"; - String sql = "SELECT " + - Col.DATE + ", " + - Col.TPS + ", " + - Col.PLAYERS_ONLINE + ", " + - Col.CPU_USAGE + ", " + - Col.RAM_USAGE + ", " + - Col.ENTITIES + ", " + - Col.CHUNKS + ", " + - Col.FREE_DISK + ", " + - serverUUIDColumn + - " FROM " + tableName + - " INNER JOIN " + serverTable + " on " + serverIDColumn + "=" + Col.SERVER_ID; - - return query(new QueryAllStatement>>(sql, 50000) { - @Override - public Map> processResults(ResultSet set) throws SQLException { - Map> serverMap = new HashMap<>(); - while (set.next()) { - UUID serverUUID = UUID.fromString(set.getString("s_uuid")); - - List tpsList = serverMap.getOrDefault(serverUUID, new ArrayList<>()); - - TPS tps = TPSBuilder.get() - .date(set.getLong(Col.DATE.get())) - .tps(set.getDouble(Col.TPS.get())) - .playersOnline(set.getInt(Col.PLAYERS_ONLINE.get())) - .usedCPU(set.getDouble(Col.CPU_USAGE.get())) - .usedMemory(set.getLong(Col.RAM_USAGE.get())) - .entities(set.getInt(Col.ENTITIES.get())) - .chunksLoaded(set.getInt(Col.CHUNKS.get())) - .freeDiskSpace(set.getLong(Col.FREE_DISK.get())) - .toTPS(); - - tpsList.add(tps); - serverMap.put(serverUUID, tpsList); - } - return serverMap; - } - }); - } - public List getNetworkOnlineData() { Optional proxyInfo = db.query(OptionalFetchQueries.proxyServerInformation()); if (!proxyInfo.isPresent()) { diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/move/BatchOperationTable.java b/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/move/BatchOperationTable.java index 732a426ce..f875fad54 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/move/BatchOperationTable.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/move/BatchOperationTable.java @@ -139,7 +139,7 @@ public class BatchOperationTable extends Table { if (toDB.equals(this)) { return; } - toDB.db.getTpsTable().insertAllTPS(db.getTpsTable().getAllTPS()); + toDB.db.getTpsTable().insertAllTPS(db.query(LargeFetchQueries.fetchAllTPSData())); } public void copyUserInfo(BatchOperationTable toDB) {