分三步完成
1.在Postgre上建立一个视图
CREATE OR REPLACE VIEW public.getdbsize AS SELECT pg_size_pretty(pg_database_size(pg_database.datname)) AS pg_size_pretty FROM pg_database WHERE pg_database.datname = (( SELECT current_database() AS current_database)); ALTER TABLE public.getdbsize OWNER TO postgres;
2. 验证
SELECT pg_size_pretty FROM public.getdbsize;
执行结果:
pg_size_pretty 7992 kB
3. 应用程序使用
StringBuilder sql = new StringBuilder("SELECT * FROM getdbsize;"); NpgsqlCommand cmd = new NpgsqlCommand(sql.ToString(),(NpgsqlConnection)conn.Connection); NpgsqlDataReader reader = cmd.ExecuteReader(); string result = reader.GetString(0);
result经过trim,运算处理就是要的结果。
扯一点的是KB怎么还是小写k大写的B。