【问题标题】:Understanding Lob segments (SYS_LOB) in oracle?了解 oracle 中的 Lob 段 (SYS_LOB)?
【发布时间】:2010-10-06 14:23:17
【问题描述】:

大多数表(如果不是全部)中都有一个“blob”字段。存储用户操作日志的表之一现在已增长到 8 GB(约 500 万条记录)。

我们的 DBA 已经看到,这种模式现在正以指数方式占用空间。我们调查了一下,发现有一个表(SYS_LOB)占用了大约 116GB 的 140GB 数据库。

我们的 DBA 告诉我们,此表与保存用户操作日志的表相关(8GB)

有人知道这个 SYS_LOB 表是做什么的吗?是保存在我们创建的表中的实际 blob 还是 oracle 实际上将这些 blob 存储在另一个表中(如果是,那么 SYS_LOB 就是那个表)?

【问题讨论】:

    标签: oracle blob


    【解决方案1】:

    Oracle 数据库中没有表 SYS_LOB(至少,没有这样的表是基本数据库安装的一部分。有一个视图 DBA_LOBS 显示有关数据库中所有 LOB 列的信息,但它实际上并不存储任何 LOB 数据,只是元数据。数据库中的实际 LOB 段具有系统生成的名称,其格式为 SYS_LOBidentifier$$。

    我的猜测是,您的 DBA 已经确定了一个名为 SYS_LOBidentifier$$ 的段,它占用了 116 GB 的空间。假设这是正确的,您可以使用DBA_LOBS 视图找出 LOB 列映射到哪个表的哪个列,即

    SELECT owner, table_name, column_name
      FROM dba_lobs
     WHERE segment_name = 'SYS_LOB<<identifier>>$$'
    

    【讨论】:

      猜你喜欢
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多