Delmonte Asked: 2012-10-17 12:32:03 +0800 CST2012-10-17 12:32:03 +0800 CST 2012-10-17 12:32:03 +0800 CST 删除索引和磁盘空间 772 如果我删除一个大索引并重新创建它,是否会增加存储索引的数据文件的大小? 当我删除索引时,它非常快。然而,当我构建一个时,它需要时间,并且在检查数据文件上的可用空间时,我发现它已经减少了。 oracle-10g 1 个回答 Voted Best Answer Justin Cave 2012-10-17T13:22:28+08:002012-10-17T13:22:28+08:00 假设您在它之前所在的同一个表空间中创建索引,磁盘上与该表空间关联的数据文件的大小不应更改,表空间中的可用空间不应减少。 当然,通常您会删除索引以便加载大量数据,然后重建索引。如果是这种情况,假设表(或您要加载到的分区)和索引在同一个表空间中,批量加载很可能会使用索引以前使用过的表空间中的空间,所以当你去重新创建索引,这样当你建立索引时数据文件可能需要增长,即使索引不比原来大。如果您正在执行批量加载,那么索引在重新创建时也可能会更大,这仅仅是因为基础表更大并且索引的大小与表的大小成正比(当然,索引的大小指数增加为O( log(n) ))
假设您在它之前所在的同一个表空间中创建索引,磁盘上与该表空间关联的数据文件的大小不应更改,表空间中的可用空间不应减少。
当然,通常您会删除索引以便加载大量数据,然后重建索引。如果是这种情况,假设表(或您要加载到的分区)和索引在同一个表空间中,批量加载很可能会使用索引以前使用过的表空间中的空间,所以当你去重新创建索引,这样当你建立索引时数据文件可能需要增长,即使索引不比原来大。如果您正在执行批量加载,那么索引在重新创建时也可能会更大,这仅仅是因为基础表更大并且索引的大小与表的大小成正比(当然,索引的大小指数增加为
O( log(n) )
)