了解oracle中的Lob段(系统Lob)?

了解oracle中的Lob段(系统Lob)?,oracle,blob,Oracle,Blob,大多数表(如果不是全部的话)都有一个“blob”字段。存储用户操作日志的一个表现在已增长到8GB(约500万条记录) 我们的DBA已经看到,这个模式现在正以指数方式占用空间。我们进行了一些调查,发现有一个表具有(SYS_LOB),它占用了大约116GB的140GB数据库 我们的DBA告诉我们,该表与保存用户操作日志的表相关(8GB) 有人知道这个系统LOB表是做什么的吗?实际blob是否保存在我们创建的表中,或者oracle实际将这些blob存储在另一个表中(如果是,则SYS\U LOB就是该表

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

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

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


有人知道这个系统LOB表是做什么的吗?实际blob是否保存在我们创建的表中,或者oracle实际将这些blob存储在另一个表中(如果是,则SYS\U LOB就是该表)?

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

我猜您的DBA已经识别了一个名为
SYS\u LOB
identifier$$的段,该段占用了116 GB的空间。假设这是正确的,您可以使用
DBA\u LOBS
视图找出LOB列映射到哪个表的哪个列,即

SELECT owner, table_name, column_name
  FROM dba_lobs
 WHERE segment_name = 'SYS_LOB<<identifier>>$$'
选择所有者、表名、列名
来自dba_lobs
其中segment\u name='SYS\u LOB$$'