一个表可以属于多个表空间吗?

4 oracle

一个表可以属于多个表空间吗?

Mat*_*Mat 12

一个段只能属于一个表空间。因此,普通表(没有 LOB、变量数组、嵌套表或分区的普通堆表)只能存在于一个表空间中。

分区表(或索引、物化视图等)可以在不同的表空间中具有不同的分区(至少有一个限制:所有表空间必须具有相同的块大小)。

对于具有 LOB 的表,LOB 存储可以是外联的,在这种情况下,您可以为每个持久 LOB 列指定不同的表空间。(可变数组可以根据大小存储为 LOB,因此同样适用于它们。)

索引组织表可以有一个溢出段。在这种情况下,溢出段也可以放在与 IOT 的“主要”部分不同的表空间上。

嵌套表也是一种特殊情况(无论它们是在堆表中还是在 IOT 中),并且主要部分和嵌套部分不必位于同一个表空间中。

可能还有其他特殊处理的类型,但主要思想是:一个段位于一个表空间中。如果您有一个具有多个段的对象(最常见的是分区和 LOB 存储或溢出段),那么这些段不必都在同一个表空间中(有一些限制)。

  • 仍然不正确:“普通”表可以包含 LOB,这些 LOB 可以根据 DBA 的心血来潮存储在单独的表空间中。 (2认同)
  • @Colin'tHart:对。如果您想详尽无遗,那么您的答案也有点短。(我的初始声明 AFAIK 持有:1 个段 <=> 1 个表空间。)无论如何都更新了。 (2认同)