OracleFreelist和HWM原理及性能优化(5)
文章作者 100test 发表时间 2007:03:14 13:43:39
来源 100Test.Com百考试题网
3.2 提取HWM信息
3.2.1 HWM位置
HWM位置按下面的公式计算:
HWM = useed byte = Total Bytes - Unused Blocks
Total Bytes和Unused Blocks都可以用show_space提取。
还可以通过ANALYZE tables得到HWM信息. DBA_TABLES视图中包含了可用于各表空间分析的列。其中blocks代表已使用过的块即HWM,empty_blocks代表未使用的空间。
3.2.2 HWM下空间利用信息
要比较有数据行的块的块数和HIGH WATER MARK下总块数,可以用下面的公式来展示HWM下未用空间的比例。
p = 1- r/h
r:有数据行的块的块数
h:HWM下的块数.
r可以通过如下方法获得:
Oracle7:
SELECT count(distinct substr(rowid, 15,4) || substr(rowid, 1,8) ) FROM schema.table.
Oracle8 and Oracle9:
SELECT count(distinct substr(rowid, 7,3) || substr(rowid, 10,6) ) FROM schema.table. |
如果公式计算的结果 p是0,就不需要对表进行重建。如果结果p大于0,应该考虑系统状况和应用需要来决定是否需要总组表。