除了public
和用户创建的schema之外,每个数据库还包含一个 pg_catalog
schema,其中包含系统表和所有内置数据类型、函数和运算符。
这些是一组用于存储 PostgreSQL 数据库的动态和静态元数据的表,可以将其视为数据库的“数据字典”。所有系统目录表都以 pg_*
前缀开头,参考:https://www.postgresql.org/docs/11/catalogs-overview.html
在 pgAdmin 中,展开first_database
节点,然后展开Catalogs
节点,然后展开 PostgreSQL Catalog
,然后展开tables,可以看到下面所有的表:
右键单击first_database
,然后选择Query Tool
:
执行以下SQL,以查看pg_catalog
:
select * from pg_tables where schemaname='pg_catalog';
Statistics Collector Views
也是pg_catalog
的一部分,它收集有关数据库实例中当前活动的运行时动态信息。例如,用于确定访问特定表的频率以及是否使用索引扫描或访问该表。
运行此命令:
SELECT * FROM pg_stat_activity WHERE STATE = 'active';
单击first_database
。然后单击Dashboard, 查看“database activity”部分中的“Sessions”:
在这里,pgAdmin 向我们显示相同的 pg_stat_activity
信息,它仅关注连接到该特定数据库的那些会话。
information_schema
由一组视图组成,这些视图包含有关当前数据库中定义的对象的信息
运行以下命令:
select * from information_schema.tables;
参考 https://www.postgresql.org/docs/11/runtime-config.html
在 pgAdmin 中,单击rds-pg-labs
,然后单击Dashboard,然后单击Configuration。里面显示了所有 PostgreSQL 参数的当前设置。在搜索框里输入search
,这会过滤参数设置列表。:
右键单击first_database
,然后选择Query Tool
。然后粘贴并运行以下 SQL:
SELECT * FROM pg_settings where context = 'user';
这显示了可以为会话更改的参数会话及其当前设置。
运行以下命令:
该SHOW
命令是查看会话设置的当前值的另一种方法。
show all
这也是另一种查看会话所有参数的当前值的方法。
运行以下SQL
select * from first_table;
这会失败,因为first_table
不在当前search_path
:
运行以下SQL:
SET search_path TO first_schema, public;
再次运行SQL,可以查看到结果,因为我们更新了会话的 search_path
参数设置: