oracle表碎片查询整理

news/2025/2/28 4:30:22/

模拟插入数据

create table test as select * from dba_objects;
insert into test select * from test;
insert into test select * from test;
insert into test select * from test;
commit;

收集统计信息

SET TIME ON
exec dbms_stats.gather_table_stats(ownname=>'TEST',tabname=> 'TEST',DEGREE=>2);

查询初始表的碎片率68126

SELECT table_name,
ROUND ( (blocks * 8), 2) "HW_space k",
ROUND ( (num_rows * avg_row_len / 1024), 2) "real_space k",
ROUND ( (blocks * 10 / 100) * 8, 2) "(pctfree) k",
ROUND (
( blocks * 8
- (num_rows * avg_row_len / 1024)
- blocks * 8 * 10 / 100),
2)
"waste_space k"
FROM user_tables
WHERE temporary = 'N' AND TABLE_NAME='TEST'
--and OWNER='TEST'
ORDER BY 5 DESC;TABLE_NAME HW_space k real_space k (pctfree) k waste_space k
---------- ---------- ------------ ----------- -------------
TEST            89176     68126.08      8917.6      12132.32

第一次模拟清理数据

delete from test where object_type in('SYNONYM','JAVA CLASS');
commit;

再次收集统计信息

SET TIME ON
exec dbms_stats.gather_table_stats(ownname=>'TEST',tabname=> 'TEST',DEGREE=>2);

第一次清理完查询表的碎片率18963

TABLE_NAME HW_space k real_space k (pctfree) k waste_space k
---------- ---------- ------------ ----------- -------------
TEST            89176     18963.03      8917.6      61295.37

第二次模拟删除数据

delete from test where object_type in('VIEW','INDEX','TABLE','TYPE');
commit;

再次收集统计信息

SET TIME ON
exec dbms_stats.gather_table_stats(ownname=>'TEST',tabname=> 'TEST',DEGREE=>2);

第二次清理完查询表的碎片率6199,但是可以看到浪费的空间一直在增加74058.9,高水位一直没有变化89176

TABLE_NAME HW_space k real_space k (pctfree) k waste_space k
---------- ---------- ------------ ----------- -------------
TEST            89176       6199.5      8917.6       74058.9

进行表碎片整理

15:21:46 SQL> alter table test enable row movement;Table altered.15:24:52 SQL> alter table test shrink space;Table altered.15:25:23 SQL> exec dbms_stats.gather_table_stats(ownname=>'TEST',tabname=> 'TEST',DEGREE=>2);PL/SQL procedure successfully completed.15:25:47 SQL> SELECT table_name,
15:25:56   2  ROUND ( (blocks * 8), 2) "HW_space k",
15:25:56   3  ROUND ( (num_rows * avg_row_len / 1024), 2) "real_space k",
15:25:56   4  ROUND ( (blocks * 10 / 100) * 8, 2) "(pctfree) k",
15:25:56   5  ROUND (
15:25:56   6  ( blocks * 8
15:25:56   7  - (num_rows * avg_row_len / 1024)
15:25:56   8  - blocks * 8 * 10 / 100),
2)
15:25:56   9  15:25:56  10  "waste_space k"
FROM user_tables
15:25:56  11  15:25:56  12  WHERE temporary = 'N' AND TABLE_NAME='TEST'
15:25:56  13  --and OWNER='TEST'
15:25:56  14  ORDER BY 5 DESC;TABLE_NAME HW_space k real_space k (pctfree) k waste_space k
---------- ---------- ------------ ----------- -------------
TEST             7408       6199.5       740.8         467.7

经过以上表碎片整理之后,可以看到表的高水位已经降下来7408,浪费的空间已经得到释放467.7


http://www.ppmy.cn/news/920406.html

相关文章

惠普战66五代锐龙版配置 怎么样

惠普战66五代锐龙版轻薄本A/C/D三面采用的是金属机身一体成型工艺,重约1.74kg ,厚度19.9mm;屏幕均采用四面窄边框设计,屏占比87.9%,支持180 开合、100%SRGB高色域、400尼特亮度。尤为值得一提的是,惠普战66…

postfix邮件服务配置及各种问题解决

前言:本文总结了一些postfix常见的问题及解决方案,可能并不太全面,望对阅读的你有一些帮助 一、postfix邮件服务安装 1.安装 yum -y install postfix 2.配置 vim /etc/postfix/main.cf myhostname sample.abc.com  设置系统的主机名…

列表中套字典,根据字典的某个key删列表的元素

#根据name删除信息 stu_list [{name:杨杨,age:12,QQ:6199},{name:喜羊羊,age:16,QQ:2471},{name:懒洋洋,age:18,QQ:3569} 方法一:遍历列表,把字典中包含要删除的值不拼接到新列表 def appName(stu_list):new_list []del_name input(请输入你要删除信…

邮件服务器启动postfix时的问题:启动 postfix: [失败]

[rootlinux115 spool]# service postfix start 启动 postfix: [失败] [rootlinux115 log]# postfix start postsuper: fatal: scan_dir_push: open directory defer: Permission denied postfix/postfix-script: fatal: Postfix integrity check failed! [rootlinu…

微软最强 Python 自动化工具开源了!不用写一行代码!

1. 前言 最近,微软开源了一款非常强大的 Python 自动化依赖库:playwright-python 它支持主流的浏览器,包含:Chrome、Firefox、Safari、Microsoft Edge 等,同时支持以无头模式、有头模式运行 playwright-python 提供了同…

codeforces 1669F

题意: alice和bob从数组两边的吃糖果, 数组的值就是糖果重量 要求alice和bob吃的糖果重量必须一样, 输出能吃几个糖果 这题最先想到的是前后缀相加 模拟一个前缀和 和 后缀和 在n/2的位置向前找前缀和 在n/2的位置向后找后缀和 找到第一个前缀和后缀和的下标输出就好 …

LINUX6279

linux_填空题大全-金锄头文库 一、 选择题(每小题2分,共50分) 在创建Linux分区时,一般要创建(D )两个分区 FAT/NTFS B. FAT/SWAP C. NTFS/SWAP D.SWAP/根 分区 当登录Linux时,一个具有唯一进程ID号的shell将…

声音的相位

相位(Phase) 简单来说,相位就是时间特性的反映,代表一个周期运动的波形,当前时刻在一个周期内的位置。 相位的单位是度,一个理想正弦波在一个完整周期内,相位将从0度变化到360度,期间经历一个波峰和一个波…