提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
没啥好说的
1.查询表空间、属主、以及表空间大小的语句
代码如下(示例):
SELECT spcname AS "Name",
sys_catalog.sys_get_userbyid(spcowner) AS "Owner",
sys_catalog.sys_tablespace_location(oid) AS "Location",
sys_catalog.array_to_string(spcacl, E'\n') AS "Access privileges",
spcoptions AS "Options",
sys_catalog.sys_size_pretty(sys_catalog.sys_tablespace_size(oid)) AS "Size",
sys_catalog.shobj_description(oid, 'sys_tablespace') AS "Description"
FROM sys_catalog.sys_tablespace
ORDER BY 1;
查看模式下面的各个表的大小,这里以XZZFSYS模式为例:
select schemaname,relname,sys_size_pretty(sys_total_relation_size(relid)) from sys_stat_user_tables
where schemaname='XZZFSYS' order by sys_relation_size(relid) desc
select sys_size_pretty(sys_relation_size(‘“XZZFSYS”.“OPERATE_LOG”’));这个命令能查表数据大小,但是跟上面的sys_total_relation_size语句查出来的大小不一样,我也没搞清楚为什么,我认为sys_total_relation_size是跟表有关的数据总的大小,但是我不知道是不是索引之类的加在里面计算的。
2.查询useconfig
代码如下(示例):
select usename,useconfig from sys_user where usename='ODS_LAW_CFXK';
3.修改表空间属主
ALTER TABLESPACE ods OWNER TO ODS_LAW_CFXK;
4.缩表了
遇到删除不掉表,truncate也不行的
select pid waiter_pid,sys_blocking_pids(pid) holder_pid,state,wait_event_type,wait_event,query from sys_stat_activity where wait_event_type = 'Lock' and pid!=sys_backend_pid();
结果里面的waiter_pid 21898带入到下面的sql执行
select sys_terminate_backend(21898);
搞定
总结
千里之行始于足下!