软讯网络 > 冲浪宝典 > 网络资源 > 关于系统的物理上不连续的碎片数计算!
【标 题】:关于系统的物理上不连续的碎片数计算!
【关键字】:
【来 源】:http://www.cublog.cn/u/23246/showart.php?id=173281
关于系统的物理上不连续的碎片数计算!
关于系统的物理上不连续的碎片数计算! |
|
| http://www.chinaunix.net 作者:wxx 发表于:2004-04-28 11:40:09 |
| 【发表评论】【查看原文】【Oracle讨论区】【关闭】 |
可以使用如下方法查碎片: select bytes from dba_free_space; 可以采用如下方法查系统中物理上不连续的碎片: create table wg_dba_free_space as select * from dba_free_space where 1=2; create table wg_free_space as select file_id,block_id,blocks from dba_free_space;
create or replace procedure sp_freespace_wg /*目的是找出系统中物理上不连续的碎片个数;而通过select count(*) from dba_free_space中得到的数目减去它计算出来的东西,就是可以通过coalesce命令整理的碎片数了。*/ is p_file_id number; p_block_id number; p_blocks number; pre_block_id number; pre_blocks number; pre_file_id number; cursor c1 is select file_id,block_id,blocks from wg_dba_free_space where tablespace_name='TS_BILL1' order by file_id asc,block_id asc; begin p_file_id:=0; p_block_id:=0; p_blocks:=0; pre_block_id:=0; pre_file_id:=0;
for dba_data_files_rec in c1 LOOP p_file_id:=dba_data_files_rec.file_id; p_block_id:=dba_data_files_rec.block_id; p_blocks:=dba_data_files_rec.blocks; if (p_file_id=pre_file_id) and (p_block_id=pre_block_id+p_blocks) then /*update*/ update wg_free_space set blocks=blocks+p_blocks where file_id=p_file_id and block_id=p_block_id; else insert into wg_free_space(file_id,block_id,blocks) values(p_file_id,p_block_id,p_blocks); end if;
pre_file_id:=p_file_id; pre_block_id:=p_block_id; pre_blocks:=p_blocks; commit; end loop; end;
execute sp_freespace_wg;
huanggzcn 回复于:2004-01-10 12:16:10
谢谢,收藏
txfy 回复于:2004-04-28 11:40:09
嗯,这篇文章以前没有看过,今天看了看,觉得有点疑问,楼主能帮解释解释吗? create table wg_dba_free_space as select * from dba_free_space where 1=2; 这句可以看出表wg_dba_free_space里面没有记录。那么 cursor c1 is select file_id,block_id,blocks from wg_dba_free_space where tablespace_name='TS_BILL1' order by file_id asc,block_id asc; 就什么都选不出来,因为表是空的。从而 for dba_data_files_rec in c1 LOOP 这个循环什么都不会做,因为cursor是空的,所以你最后这个procedure什么都没做呀?怎么计算?我看不太懂!另外你计算完的结果从什么地方差,楼主能帮我们答疑一下吗?
|
 |
原文链接:http://bbs.chinaunix.net/viewthread.php?tid=240866 转载请注明作者名及原文出处
| |
【相关文章】
没有相关文章