查询PostgreSQL Server状态变量?

时间:2014-01-07 13:36:19

标签: postgresql

在我的项目中,我想收集PostgreSQL服务器的性能计数器。为此我想要查询从数据库中收集它。我是postgreSQL的新手。当我在搜索时,我有类似的东西,

SELECT * FROM pg_stat_database

但是当我以下列方式在java中使用它时,这里Map_PostgreSQL是一个hashmap。

            while(rs.next())
            {
                Counter_Name.add(rs.getString(1).trim());
                Map_PostgreSQL.put(rs.getString(1).trim(), rs.getString(2));

            }

我的输出就像

{12024=template0, 1=template1, 12029=postgres}

在MySQL中收集状态变量的实际查询是什么,例如“ SHOW GLOBAL STATUS ”。

提前致谢..

1 个答案:

答案 0 :(得分:0)

1,尝试在PostgreSQL Shell中启动sql查询,以确切地查看返回的数据以及它在行和列中的组织方式。

您将看到hashmap键是您的datid(数据库ID),值是您的数据库名称。

我认为您认为统计数据的结构是"行"而它们是按列结构的。

不要忘记:PostgreSQL是一个数据库服务器,这意味着它可以处理多个数据库(事实上,它有几个数据库,因为其中一些数据库已经创建,例如' postgres'数据库本身 - Postgres(服务器)在内部使用,或者' template0')。

启动:

SELECT * FROM pg_stat_database;

您要求服务器返回每个数据库的统计信息(前提是您已获得这些数据库)

如果您只想拥有自己数据库的统计数据,请执行以下操作:

SELECT * FROM pg_stat_database WHERE datname='your_database_name';

希望这有帮助