6.建表语句
建表语句,目前还没有发现show create table这种快捷的方式,不过可以通过pg_dump或者根据数据字典的信息来拼接了。
7.表空间信息
表空间的部分相对比较清晰,可以直接使用\db来完成。
postgres=# \db List of tablespaces Name | Owner | Location ------------+----------+---------- pg_default | postgres | pg_global | postgres | 或者使用pg_tablespace postgres=# select *from pg_tablespace; spcname | spcowner | spcacl | spcoptions ------------+----------+--------+------------ pg_default | 10 | | pg_global | 10 | | |
8.对象存储信息
这部分信息可以参考pg_tables,还有一些更细节的
更多的细节还有待求证和发现。
9.查看锁的信息
查看锁的信息可以使用pg_locks来得到。
postgres=# select *from pg_locks; -[ RECORD 1 ]------+---------------- locktype | relation database | 13241 relation | 11673 page | tuple | virtualxid | transactionid | classid | objid | objsubid | virtualtransaction | 4/81 pid | 20644 mode | AccessShareLock granted | t fastpath | t |
10.查看数据库参数
这部分的功能不是很理解,因为没有找到很便捷的方式。
比如查看缓存的设置
postgres=# show shared_buffers;
-[ RECORD 1 ]--+------
shared_buffers | 128MB
或者根据参数文件postgresql.conf来查看。
11.显示数据库的运行状态
这个信息毫无疑问,建议还是从pg_stats_activity来查看。
12.查看数据字典的信息
这应该是本小节的重点,通过查看视图可以看到,有100多个视图。
postgres=# select count(*)from pg_views;
-[ RECORD 1 ]
count | 112
还可以使用information_schema中的信息来补充。
13.查看索引的信息
查看索引的信息,可以使用\di来完成,非常快捷。
14.查看执行计划
查看执行计划一般可以根据explain来得到,但是还有几类方法,对结果做格式化处理,比如转化为json或者xml的格式等。
postgres=# explain select *from test;
-[ RECORD 1 ]------------------------------------------------------
QUERY PLAN | Seq Scan on test (cost=0.00..35.50 rows=2550 width=4)
得到json格式的执行计划。
postgres=# explain(format json) select *from test; -[ RECORD 1 ]------------------------------ QUERY PLAN | [ + | { + | "Plan": { + | "Node Type": "Seq Scan",+ | "Relation Name": "test",+ | "Alias": "test", + | "Startup Cost": 0.00, + | "Total Cost": 35.50, + | "Plan Rows": 2550, + | "Plan Width": 4 + | } + | } + | ] |
或者做一些分析,能够得到更细节的执行信息。
postgres=# explain analyze select *from test; QUERY PLAN -------------------------------------------------------------------------------------------------- Seq Scan on test (cost=0.00..35.50 rows=2550 width=4) (actual time=0.001..0.001 rows=0 loops=1) Planning time: 0.018 ms Execution time: 0.009 ms |
15.查看存储过程
查看存储过程就是比较单薄的。可以直接使用pg_proc来得到详细的信息。
pg_proc
16.存储过程的调度执行
目前没有看到很直接的方式,这部分感觉还不够强大。
17.事务隔离级别
根据公司现状和业务规模的不断扩大,其实技术上也是不断地改进和积累,事务方面的处理也是如此,等规模达到了一定的量级,这部分的要求就会很明确。所以很多开发同学对于锁机制都很感兴趣。
查看事务隔离级别的两种SQL语句。
postgres=# show default_transaction_isolation; default_transaction_isolation ------------------------------- read committed |
查看当前的事务隔离级别设置。
postgres=# show transaction_isolation; transaction_isolation ----------------------- read committed |
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。