修改数据库监控查询SQL

This commit is contained in:
duwenyuan 2026-05-12 15:11:47 +08:00
parent e860c0dbf5
commit ce6d2a28ec

View File

@ -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," +
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 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_%'";
"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";