Oracle sqldeveloper 如何确定表的空逻辑块

Oracle sqldeveloper 如何确定表的空逻辑块,oracle-sqldeveloper,Oracle Sqldeveloper,假设我的表有一个段,其中有一个区段 如果你质疑 SELECT BLOCKS FROM DBA_EXTENTS WHERE owner LIKE 'owner' AND segment_name LIKE 'segmentname'; 您可以获取数据块正在存储的逻辑块的数量 如何从这个示例8块中确定实际使用的是哪个块,哪个块是空的?因此,如果有人需要此功能,您可以通过 对非空块求和 通过DBMS_ROWID.ROWID_BLOCK_NUMBERrowid从您的表组中选择DBMS_ROW

假设我的表有一个段,其中有一个区段

如果你质疑

SELECT BLOCKS 
FROM DBA_EXTENTS 
WHERE owner LIKE 'owner' 
  AND segment_name LIKE 'segmentname';
您可以获取数据块正在存储的逻辑块的数量


如何从这个示例8块中确定实际使用的是哪个块,哪个块是空的?

因此,如果有人需要此功能,您可以通过

对非空块求和 通过DBMS_ROWID.ROWID_BLOCK_NUMBERrowid从您的表组中选择DBMS_ROWID.ROWID_BLOCK_NUMBERrowid,从中选择计数* 获取所有块的数量从dba_段中选择SUMBLOCKS,其中owner(如ownerofyourtable)和segment_name(如YourTable的名称)' 然后你只需要减去2。我是在pl/sql中实现的,但我认为从这一点来看,它应该足够简单。 注意第二点中的大写和小写