如何查询表和索引所在的表空间
答案:2 悬赏:20 手机版
解决时间 2021-02-24 11:08
- 提问者网友:富士山上尢
- 2021-02-24 07:58
如何查询表和索引所在的表空间
最佳答案
- 五星知识达人网友:零点过十分
- 2021-02-24 09:07
--查询表空间包含的对象
SELECt t.owner, t.segment_name,SUM(bytes)/1024/1024 From dba_segments t
WHERe t.tablespace_name = 'TBS_DEFAULT'
GROUP BY t.owner,t.segment_name
ORDER BY SUM(bytes) desc;
SELECt t.owner, t.segment_name,SUM(bytes)/1024/1024 From dba_segments t
WHERe t.tablespace_name = 'TBS_DEFAULT'
GROUP BY t.owner,t.segment_name
ORDER BY SUM(bytes) desc;
全部回答
- 1楼网友:西岸风
- 2021-02-24 09:52
工作的内容,以下都是基于 postgresql 9.0.1 做的测试。 一 查询某个表所在表空间的简单方法 postgresql 提供类似" \ "命令很方便得到相关信息,命令如下: skytf=> \d test_2 table "skytf.test_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 的默认表空间, 那么如何查询数据库的默认 表空间呢,可以通过以下命令查询。 --1.1 查询数据库的默认表空间 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。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯