删除BLOB数据及其占用的空间

问题描述 投票:0回答:1

我们有一个表,我们将 JSON 文件存储在 securefile 的 BLOB 对象中

数据类型: JSON_FILES BLOB

LOB (JSON_FILES) STORE AS SECUREFILE (
  TABLESPACE  J_FILES
  ENABLE      STORAGE IN ROW
  CHUNK       8192
  NOCACHE
  LOGGING
      STORAGE    (
                  INITIAL          104K
                  NEXT             1M
                  MINEXTENTS       1
                  MAXEXTENTS       UNLIMITED
                 ))

但是,当我使用删除语句从表中删除行时。行被删除,但 BLOB 占用的空间存在于某些段中。

Delete from FILE_TABLE WHERE FILE_ID Between 10 and 11000


SELECT  SEGMENT_NAME, TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024 / 1024 SIZE_IN_GB
FROM    DBA_SEGMENTS
WHERE   OWNER = 'ABC'
AND     TABLESPACE_NAME = 'FILES_TABLESPACE'
GROUP BY SEGMENT_NAME, TABLESPACE_NAME

SYS_LOB0001543022C00007$$   FILES_TABLESPACE **608.9727783203125**
FILE_TABLE  FILES_TABLESPACE 2.6875

Oracle 19c 上的任何解决方案

sql json blob oracle19c
1个回答
0
投票

通常,当您删除表(段)中的某些内容时,分配给表的空间在表空间中保持不变,只是表中有更多的可用空间。如果不查看手册进行检查,我预计持有 blob(或 clob)的段也会以相同的方式运行。现在,如果您想缩小一个段以释放它所使用的空间,那就是另一个问题了。

© www.soinside.com 2019 - 2024. All rights reserved.