PostgreSQL里面的一些命令小结

发表于:2018-3-28 09:25

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Greg Pittman    来源:Linux中国

  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),我们将立即处理。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号