标签:10g 删除 很多 有一个 统计信息 tab pre 时间 未使用
如何检查表是否有高水位问题?
SQL> exec dbms_stats.gather_table_stats(ownname=>‘SCHEMA_NAME‘,tabname=> ‘TABLE_NAME‘);
/* Formatted on 2017/9/21 14:14:37 (QP5 v5.240.12305.39476) */
SELECT TABLE_NAME,
ROUND((BLOCKS * 8), 2) "高水位空间 k",
ROUND((NUM_ROWS * AVG_ROW_LEN / 1024), 2) "真实使用空间 k",
ROUND((BLOCKS * 10 / 100) * 8, 2) "预留空间(pctfree) k",
ROUND((BLOCKS * 8 - (NUM_ROWS * AVG_ROW_LEN / 1024) -
BLOCKS * 8 * 10 / 100),
2) "浪费空间 k"
FROM USER_TABLES
WHERE TEMPORARY = ‘N‘
ORDER BY 5 DESC;
select table_name,last_analyzed from dba_tables where owner = ‘SCHEMA_NAME‘
SQL> exec dbms_stats.gather_schema_stats(ownname=>‘SCHEMA_NAME‘);
高水位问题会产生什么不好的影响?
如何解决高水位问题?
10g之前有两种方式
10g之后
提供 shrink 命令,需要表空间是基于自动段管理的,分两步走:
alter table TABLE_NAME enable ROW MOVEMENT;--启动行移动功能
alter table TABLE_NAME shrink space compact; --只整理碎片 不回收空间
alter table TABLE_NAME shrink space; --整理碎片并回收空间,并调整水位线。业务少时执行
alter table TABLE_NAME disable ROW MOVEMENT;--关闭行移动
也可以一步到位:
alter table TABLE_NAME shrink space;
shrink 的优势:不需要重建索引。可以在线操作。
标签:10g 删除 很多 有一个 统计信息 tab pre 时间 未使用
原文地址:https://www.cnblogs.com/fubinhnust/p/9925731.html