了解oracle中的Lob段(SYS_LOB)?

MOZ*_*LLA 21 oracle blob

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

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

我们的DBA告诉我们这个表与保存用户操作日志的表(8GB)有关

有谁知道这个SYS_LOB表有什么作用?实际的blob是否保存在我们创建的表中,或者oracle实际上将这些blob存储在另一个表中(如果是,那么SYS_LOB将是该表)?

Jus*_*ave 42

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

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

SELECT owner, table_name, column_name
  FROM dba_lobs
 WHERE segment_name = 'SYS_LOB<<identifier>>$$'
Run Code Online (Sandbox Code Playgroud)

  • 这很有见地,谢谢.这应该是接受的答案btw .. (3认同)