From 6e6739cd1a44b6f75a6cd219bc2d413b18e16d42 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 2 Jun 2020 19:01:36 +0000 Subject: [PATCH] --- .../Controllers/ServerMetricsController.cs | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/server/AyaNova/Controllers/ServerMetricsController.cs b/server/AyaNova/Controllers/ServerMetricsController.cs index 4be69cdb..74ddd9e1 100644 --- a/server/AyaNova/Controllers/ServerMetricsController.cs +++ b/server/AyaNova/Controllers/ServerMetricsController.cs @@ -209,8 +209,23 @@ namespace AyaNova.Api.Controllers List TopTables = new List(); using (var command = ct.Database.GetDbConnection().CreateCommand()) { - //top 10 tables by size - command.CommandText = @"SELECT relname AS ""table_name"", pg_table_size(C.oid) AS ""table_size"" FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) WHERE nspname NOT IN ('pg_catalog', 'information_schema') AND nspname !~ '^pg_toast' AND relkind IN ('r') ORDER BY pg_table_size(C.oid) DESC;"; + /* + pg_table_size(table_name) AS table_size, + pg_indexes_size(table_name) AS indexes_size, + */ + var cmd=@"SELECT + table_name, + pg_total_relation_size(table_name) AS total_size + FROM ( + SELECT ('""' || table_schema || '"".""' || table_name || '""') AS table_name + FROM information_schema.tables + where table_schema not in('pg_catalog','information_schema') + ) AS all_tables + ORDER BY total_size DESC"; + command.CommandText = cmd; + + + ct.Database.OpenConnection(); using (var dr = command.ExecuteReader()) { @@ -220,6 +235,7 @@ namespace AyaNova.Api.Controllers { long tableSize = dr.GetInt64(1); string tableName = dr.GetString(0); + tableName=tableName.Replace("\"","").Replace("public.a",""); if (tableSize > 0) { tableSize = tableSize / MB;