【问题标题】:Get the space used by a table in Apache Derby获取 Apache Derby 中的表使用的空间
【发布时间】:2016-05-07 01:17:58
【问题描述】:

是否可以获取 Apache Derby 中的表使用了多少空间?

【问题讨论】:

    标签: database derby


    【解决方案1】:

    以下语句返回每个表的大小:

    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
    

    【讨论】:

    • 此查询给出空大小。 Apache derby 版本 10.11.1.1
    【解决方案2】:

    以下查询显示两个表和索引的空间使用情况。

    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

    【讨论】:

      【解决方案3】:

      要删除为非 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多