如何在Teradata中获取表大小?

5

我在Teradata中有一张表,想知道它的大小。对于Teradata中的数据库来说,同样的事情也很有趣。

我该怎么做呢?

2个回答

19

要检查表的大小,您可以从 dbc.tablesize 进行检查。请查看下面的查询。

SELECT 
     A.DatabaseName
    ,A.tablename
    ,CreateTimeStamp
    ,CAST(SUM(CURRENTPERM) AS DECIMAL(18,2))/(1024*1024*1024) (TITLE 'Used(GB)')
FROM dbc.tablesize A,DBC.TABLES B
WHERE   A.TABLENAME=B.TABLENAME
    AND A.DatabaseName = B.DatabaseName 
    AND A.DatabaseName = 'your database name/schemaname/appname'
    AND A.tablename = 'your tablename'
GROUP BY 1,2,3 ORDER BY 3 DESC;  

要检查数据库大小,您可以使用dbc.diskspace,查询将类似于以下内容:

SELECT 
     DatabaseName
    ,CAST(SUM(CurrentPerm) AS DECIMAL(18,5))/(1024*1024*1024) (TITLE 'Used(GB)')
    ,CAST(SUM(MaxPerm) AS DECIMAL(18,5))/(1024*1024*1024) (TITLE 'Allocated(GB)') 
    ,CAST(SUM(MaxPerm)-SUM(CurrentPerm) AS DECIMAL(18,5))/(1024*1024*1024) (TITLE 'Free(GB)')
FROM DBC.DiskSpace
WHERE DatabaseName = 'databasename'
GROUP BY 1
ORDER BY 2 Desc; 

这将为您提供数据库中已使用空间、分配空间和可用空间。


0

代码将整数除以十进制数并遭受截断。 将转换更改为:

CAST(SUM(CurrentPerm) AS DECIMAL(18,5)) /(1024*1024*1024) (TITLE 'Used(GB)')

给出你的意思


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接