From ce6d2a28ec33760b035c9130f18a4f8ac5d8a634 Mon Sep 17 00:00:00 2001 From: duwenyuan <15600000461@163.com> Date: Tue, 12 May 2026 15:11:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E7=9B=91=E6=8E=A7=E6=9F=A5=E8=AF=A2SQL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/jeecg/common/constant/DBSQL.java | 65 +++++++++++++++---- 1 file changed, 54 insertions(+), 11 deletions(-) diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/DBSQL.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/DBSQL.java index d2eb2622..21e8087c 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/DBSQL.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/DBSQL.java @@ -4,22 +4,63 @@ public interface DBSQL { /* PostgreSQL */ String DBNAMES_PG = "SELECT datname FROM pg_database WHERE datistemplate = false"; - String DBINFO_PG = "SELECT relname AS tableName, 0 AS numRow, 0.0 AS used," + - "ROUND( pg_relation_size ( relid ) / ( 1024 * 1024 ), 2 ) AS dataSize," + - "ROUND( pg_indexes_size ( relid ) / ( 1024 * 1024 ), 2 ) AS indexSize " + - "FROM pg_stat_user_tables WHERE schemaname = 'public'"; - String DBROWNUM_PG = "SELECT relname AS tableName, reltuples AS numRow," + - "0.0 AS used, 0.0 AS dataSize, 0.0 AS indexSize " + - "FROM pg_class WHERE relkind = 'r' AND relname NOT LIKE 'pg_%' AND relname NOT LIKE 'sql_%'"; + String DBINFO_PG = + "SELECT schemaname|| '.' || relname AS tableName, 0 AS numRow, 0.0 AS used," + + "ROUND( pg_relation_size ( relid ) / ( 1024 * 1024 ), 2 ) AS dataSize," + + "ROUND( pg_indexes_size ( relid ) / ( 1024 * 1024 ), 2 ) AS indexSize " + + "FROM pg_stat_user_tables "; + String DBROWNUM_PG = "SELECT \n" + + " n.nspname|| '.' || c.relname AS tableName, \n" + + " c.reltuples AS numRow,\n" + + " 0.0 AS used, \n" + + " 0.0 AS dataSize, \n" + + " 0.0 AS indexSize\n" + + "FROM pg_class c\n" + + "JOIN pg_namespace n ON c.relnamespace = n.oid\n" + + "WHERE c.relkind = 'r' \n" + + " AND n.nspname NOT IN ('pg_catalog', 'information_schema') -- 过滤系统模式\n" + + " AND c.relname NOT LIKE 'pg_%' \n" + + " AND c.relname NOT LIKE 'sql_%'"; + + String SPACE_PG = "SELECT \n" + + " ts.spcname AS spaceName,\n" + + " ROUND(pg_tablespace_size(ts.oid) / 1024.0 / 1024, 2) AS total,\n" + + " ROUND((pg_tablespace_size(ts.oid) - \n" + + " COALESCE(SUM(pg_relation_size(c.oid)), 0)) / 1024.0 / 1024, 2) AS free,\n" + + " ROUND(COALESCE(SUM(pg_relation_size(c.oid)), 0) / 1024.0 / 1024, 2) AS usage,\n" + + " ROUND(COALESCE(SUM(pg_relation_size(c.oid)), 0) * 100.0 / \n" + + " NULLIF(pg_tablespace_size(ts.oid), 0), 2) AS used\n" + + "FROM pg_tablespace ts\n" + + "LEFT JOIN pg_class c ON c.reltablespace = ts.oid\n" + + "WHERE ts.spcname NOT IN ('pg_global')\n" + + "GROUP BY ts.oid, ts.spcname\n" + + "ORDER BY total DESC;"; + + String tablespaceLocation = " SELECT\n" + + " spcname AS space_name,\n" + + " CASE\n" + + " WHEN pg_tablespace_location (OID) = ''\n" + + " OR pg_tablespace_location (OID) IS NULL THEN\n" + + " current_setting ('data_directory')\n" + + " ELSE\n" + + " pg_tablespace_location (OID)\n" + + " END AS location_path\n" + + " FROM\n" + + " pg_tablespace\n" + + " WHERE\n" + + " spcname NOT IN ('pg_global')"; + String DBSTATUS_PG = "SELECT *, 0 AS logResidue FROM " + "(SELECT COUNT(*) AS loginNum FROM pg_stat_activity WHERE query_start >= now() - interval '1 minute') AS loginNum," + "(SELECT COUNT(*) AS connNum FROM pg_stat_activity WHERE query_start >= now() - interval '1 minute') AS connNum," + "(SELECT ROUND(SUM(pg_database_size(datname)) / 1024 / 1024, 0) AS dataSize FROM pg_database) AS dataSize"; - String DBSTATUS_CONN_PG = "SELECT COUNT(*) FROM pg_stat_activity WHERE query_start >= now() - interval '1 minute'"; + String DBSTATUS_CONN_PG = + "SELECT COUNT(*) FROM pg_stat_activity WHERE query_start >= now() - interval '1 minute'"; - String DBSTATUS_DATASIZE_PG = "SELECT ROUND(SUM(pg_database_size(datname)) / 1024 / 1024, 0) FROM pg_database"; + String DBSTATUS_DATASIZE_PG = + "SELECT ROUND(SUM(pg_database_size(datname)) / 1024 / 1024, 0) FROM pg_database"; /* Oracle */ String DBNAMES_OR = "SELECT username FROM all_users"; @@ -54,9 +95,11 @@ public interface DBSQL { "(SELECT SUM(BYTES) / 1024 / 1024 AS logResidue FROM V$log WHERE ARCHIVED = 'NO')," + "(SELECT SUM(BYTES) / 1024 / 1024 AS dataSize FROM dba_data_files)"; - String DBSTATUS_CONN_OR = "SELECT COUNT(*) FROM V$SESSION WHERE LOGON_TIME >= SYSDATE - 1 / 24 / 60"; + String DBSTATUS_CONN_OR = + "SELECT COUNT(*) FROM V$SESSION WHERE LOGON_TIME >= SYSDATE - 1 / 24 / 60"; - String DBSTATUS_LOGRESIDUE_OR = "SELECT SUM(BYTES) / 1024 / 1024 FROM V$log WHERE ARCHIVED = 'NO'"; + String DBSTATUS_LOGRESIDUE_OR = + "SELECT SUM(BYTES) / 1024 / 1024 FROM V$log WHERE ARCHIVED = 'NO'"; String DBSTATUS_DATASIZE_OR = "SELECT SUM(BYTES) / 1024 / 1024 AS dataSize FROM dba_data_files";