数据库中有一个巨型表,有800多万张图片,占用空间一个多T
每天都进行大量的插入 删除
这几天插入图片速度明显下降,查看FSFI值如下column FSFI format 999,99
select tablespace_name,sqrt(max(blocks)/sum(blocks))*
(100/sqrt(sqrt(count(blocks)))) FSFI
from dba_free_space
group by tablespace_name order by 1;
spool fsfi.rep;
spool off; TABLESPACE_NAME FSFI
------------------------------ -------
CWMLITE 56
DD 1,00
DRSYS 1,00
EXAMPLE 1,00
INDX 1,00
LICHENG 4
SYSTEM 1,00
TOOLS 1,00
UNDOTBS 23
USERS 1,00truncate table后,再次查看FSFI如下
TABLESPACE_NAME FSFI
------------------------------ -------
CWMLITE 56
DD 1,00
DRSYS 1,00
EXAMPLE 1,00
INDX 1,00
LICHENG 1
SYSTEM 1,00
TOOLS 1,00
UNDOTBS 22
USERS 1,00我的TPXX表位于LICHENG表空间下
truncate table后licheng的FSFI值有4降为1
不是truncate可以清除碎片吗,怎么执行后不升反降了呢
每天都进行大量的插入 删除
这几天插入图片速度明显下降,查看FSFI值如下column FSFI format 999,99
select tablespace_name,sqrt(max(blocks)/sum(blocks))*
(100/sqrt(sqrt(count(blocks)))) FSFI
from dba_free_space
group by tablespace_name order by 1;
spool fsfi.rep;
spool off; TABLESPACE_NAME FSFI
------------------------------ -------
CWMLITE 56
DD 1,00
DRSYS 1,00
EXAMPLE 1,00
INDX 1,00
LICHENG 4
SYSTEM 1,00
TOOLS 1,00
UNDOTBS 23
USERS 1,00truncate table后,再次查看FSFI如下
TABLESPACE_NAME FSFI
------------------------------ -------
CWMLITE 56
DD 1,00
DRSYS 1,00
EXAMPLE 1,00
INDX 1,00
LICHENG 1
SYSTEM 1,00
TOOLS 1,00
UNDOTBS 22
USERS 1,00我的TPXX表位于LICHENG表空间下
truncate table后licheng的FSFI值有4降为1
不是truncate可以清除碎片吗,怎么执行后不升反降了呢
A在物理上是完整的,分布在B和C两个文件占据的扇区之间
那么B,C是破碎的此时破碎率为 2/3删掉A后,破碎率变成100%-----------------------------------------------------但是显然,删掉A后,不会提高读写B,C文件的效率