怎样用Oracle表扩展区分配更小磁盘空间

 
   | |

导读:本文主要解决怎样用Oracle表扩展区分配更小磁盘空间的问题,用户的一个Oracle 10g中的表里有57亿条记录,并分成了500个区。比他想的要大得多……

关键词:Oracle表扩展区 Oracle备份与恢复 分配磁盘空间

正在加载数据... 【TechTarget中国原创】我的一个Oracle 10g中的表里有57亿条记录,并分成了500个区。该表所占用的磁盘空间比我想象的要大得多。我给每个具体分区查询dba_partitions并得到avg_row_len = 27和num_rows = 411482598。也就相当于10.34 GB (Select 411482598 * 27 / Power (1024,3) From Dual)。表中的列块为1653190,相当于大小为12.61 GB (Select 1653190 * 8192 / Power (1024,3) From Dual)。所以到目前为止,我还是很高兴的……

【TechTarget中国原创】问:我的一个Oracle 10g中的表里有57亿条记录,并分成了500个区。该表所占用的磁盘空间比我想象的要大得多。

  我给每个具体分区查询dba_partitions并得到avg_row_len = 27和num_rows = 411482598。也就相当于10.34 GB (Select 411482598 * 27 / Power (1024,3) From Dual)。表中的列块为1653190,相当于大小为12.61 GB (Select 1653190 * 8192 / Power (1024,3) From Dual)。所以到目前为止,我还是很高兴的。

  现在我用表名和分区名查询dba_segments,得到 bytes = 26549944320。相当于大小为24.73GB,这是在dba_partitions中的两倍。这是为什么?有没有办法解决这个问题?

  :记住分段是由一个或多个扩展区域组成。这些扩展区域都有具体的大小。我们假设扩展区域大小为1MB且我的表里有两行数据,平均每行有1KB。你计算出来的整个大小为2KB,但是DBA_SEGMENTS显示表大小为1MB。这是因为分段中的扩展区不可能小于一个。如果你想分配更小的磁盘空间,你就需要重新用更小的扩展区创建表。

 
查看全文
 
 
 
 
 

Oracle备份与恢复

 
一个示例脚本是如何在无人操作的情况下,进行空闲时间的数据库备份的?Oracle专家分两个平台,进行了介绍。
 
如何在Oracle中使用损坏控制文件进行数据库还原,在还原时应该注意哪些问题,专家将给出解答。
 
在Windows环境下,能否通过一个客户机来进行Oracle服务器备份,是否有特定的工具可以完成这一任务,专家将给出答案。
 
使用Oracle导出工具可以完成15天之内的数据导出备份,但是导出工具并没有“时间意识”,如何解决这个问题?专家将给出解答。
 
当用户把表单从一种模式转换到另一种模式时,要如何修改表单的索引,专家举出实例为用户解答。
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录