
工作的内容,以下都是基于 PostgreSQL 901 做的测试。
一 查询某个表所在表空间的简单方法
PostgreSQL 提供类似" \ "命令很方便得到相关信息,命令如下:
skytf=> \d test_2
Table "skytftest_2"
Column | Type | Modifiers
--------+-----------------------+-----------
id | integer |
obj_id | integer | not null
name | character varying(64) |
Indexes:
"idx_hash_name" hash (name)
"idx_test_2" btree (id, obj_id)
Tablespace: "tbs_skytf_idx"
备注:如果这个表的表空间为当前数据库的默认表空间,那么上面则不会显示 Tablespace 信息,
相反,则会显示这张有的表空间,例如上面的表 test_2 的表空间为 tbs_skytf_idx,而
表空间 "tbs_skytf_idx" 不是数据库 skytf 的默认表空间, 那么如何查询数据库的默认
表空间呢,可以通过以下命令查询。
--11 查询数据库的默认表空间
skytf=> select datname,dattablespace from pg_database where datname='skytf';
datname | dattablespace
---------+---------------
skytf | 14203070
(1 row)
skytf=> select oid,spcname from pg_tablespace where oid=14203070;
oid | spcname
----------+-----------
14203070 | tbs_skytf
(1 row)
备注:通过以上查出数据库 skytf 的默认表空间为 tbs_skytf。
--查询一个索引大小select pg_size_pretty(pg_relation_size('indexname))--查看一张表及此它上的索引总大小select pg_size_pretty(pg_total_relation_size('tablename')); --查看所有 schema里面索引大小,大到小的顺序排列:select indexrelname,pg_size_pretty( pg_relation_size(relid))from pg_stat_user_indexes where schemaname = 'schemaname' order by pg_relation_size(relid) desc;--查看所有 schema里面表的大小,从大到小顺序排列:select relname, pg_size_pretty(pg_relation_size(relid))from pg_stat_user_tables where schemaname = 'schemaname' order by pg_relation_size(relid) desc; --查看数据库大小:select pg_databasedatname,pg_size_pretty(pg_database_size(pg_databasedatname)) AS sizefrom pg_database;--查看表空间大小
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
我想要在一个表空间上建立了索引,表空间我已经分了很大的地方给它。
为什么当我执行语句时,还是提示我表空间不足。
由于我的这个表数据量很大,我就换其他表试一下,我发现 我在其他表上的字段建索引也提示我空间不足。
这是怎么回事呢??
解析:
因为你建立表空间时没有打开自动增长功能。需要在脚本中添加一句话,具体看你所有的数据库。
以上就是关于如何查询表和索引所在的表空间全部的内容,包括:如何查询表和索引所在的表空间、PG里如何查看表,索引,表空间,数据库大小、建立索引与表空间的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)