当我运行以下查询时
select bytes/1024/1024,segment_name,owner from dba_segments where tablespace_name='DATA_L1' and segment_name='Step_Status';
我得到了一个名为“Step_Status”的表的段的以下结果
BYTES/1024/1024 SEGMENT_NAME OWNER
-----------------------------------------------------------------
3192 STEP_STATUS FLSTD04
Run Code Online (Sandbox Code Playgroud)
它有大约 1800 万个条目
select count(*) from flstd04.step_status;
COUNT(*)
----------
18178090
Run Code Online (Sandbox Code Playgroud)
删除近 400 万条条目后
select count(*) from flstd04.step_status;
COUNT(*)
----------
14114186
Run Code Online (Sandbox Code Playgroud)
当我再次使用 dba_segments 检查表的大小时,我得到了相同的结果
select bytes/1024/1024,segment_name,owner from dba_segments where tablespace_name='DATA_L1' and segment_name='Step_Status';
BYTES/1024/1024 SEGMENT_NAME OWNER
-----------------------------------------------------------------
3192 STEP_STATUS FLSTD04
Run Code Online (Sandbox Code Playgroud)
为什么即使删除了400万行,表的大小还是一样?
oracle ×1