首页 > 解决方案 > 如何在 derbydb 中查找用于给定表的数据库文件 (.dat)?

问题描述

在 seg0/ 文件夹下的 derbydb 中有许多扩展名为 .dat 的数据库文件,例如:

c1c1ba61.dat
c1c1ba71.dat
c1c1ba80.dat
c1c1ba91.dat
c1c1baa1.dat
c1c1bab1.dat
c1c1bac0.dat
c1c1bad1.dat
c1c1bae0.dat

如何查找哪个文件用于该数据库中的哪个表?

标签: derby

解决方案


每个文件名都根据其“conglomerate ID”命名,并且 conglomerate ID 和表名之间的关系存储在 Derby 系统目录中,因此您可以查询这些目录来弄清楚这一点。

前段时间写了这个,我相信它仍然有效。引用该文档:

如果您想知道表 EMPLOYEES 使用了哪些文件:

 select c.conglomeratenumber, c.isindex, t.tablename 
        from sys.sysconglomerates c, 
             sys.systables t 
       where c.tableid=t.tableid 
         and t.tablename='EMPLOYEES';

您可能还会发现SPACE_TABLE 诊断功能很有用。


推荐阅读