【发布时间】:2016-05-07 01:17:58
【问题描述】:
是否可以获取 Apache Derby 中的表使用了多少空间?
【问题讨论】:
是否可以获取 Apache Derby 中的表使用了多少空间?
【问题讨论】:
以下语句返回每个表的大小:
select
tableName,
(select sum(numallocatedpages * pagesize) from new org.apache.derby.diag.SpaceTable('APP', t.tablename) x) as size
from SYS.SYSTABLES t
order by size desc
【讨论】:
以下查询显示两个表和索引的空间使用情况。
SELECT
((T2.PAGESIZE * T2.NUMALLOCATEDPAGES) / 1024 / 1024) AS "SIZE IN MB",
T2.*
FROM
SYS.SYSTABLES systabs,
TABLE (SYSCS_DIAG.SPACE_TABLE(systabs.tablename)) AS T2
WHERE systabs.tabletype = 'T'
ORDER by ISINDEX, 1 DESC;
https://db.apache.org/derby/docs/10.7/ref/rrefsyscsdiagtables.html
【讨论】:
要删除为非 APP 架构表显示的空大小,请尝试基于 Fidels 修改的查询。
select
tableName,
(select sum(numallocatedpages * pagesize) from new
org.apache.derby.diag.SpaceTable('APP', t.tablename) x) as size
from SYS.SYSTABLES t
where t.SCHEMAID = (select schemaid from sys.sysschemas where schemaname =
'APP')
order by size desc
【讨论】: