derby - 如何在 derbydb 中查找用于给定表的数据库文件 (.dat)?
问题描述
在 seg0/ 文件夹下的 derbydb 中有许多扩展名为 .dat 的数据库文件,例如:
c1c1ba61.dat
c1c1ba71.dat
c1c1ba80.dat
c1c1ba91.dat
c1c1baa1.dat
c1c1bab1.dat
c1c1bac0.dat
c1c1bad1.dat
c1c1bae0.dat
如何查找哪个文件用于该数据库中的哪个表?
解决方案
每个文件名都根据其“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 诊断功能很有用。
推荐阅读
- python - 如何将多类图例放在 matplotlib 的散点图中?
- c++ - C++ 将结构分离到“组”中,但允许“std::variant”查看“组”中的所有结构
- python - Snakemake 使用自定义脚本按 contig 拆分床位图
- python - 用于更改字典中键名的 Django 模板标签
- python - 如何更改 selenium 遥控器中的 window.chrome.webstore 值?
- gmail - 无法取消 EventReservation
- php - 从 SwiftMailer 到 PHPMailer 的转换
- python - 使用 2D 数组索引一批图像(3D numpy 数组)以获取每个图像的像素值
- firebase - 在 Firestore 中强制“离线”模式
- mysql - 我想获取图像,但我做到了,但方式错误