有没有办法将Teradata show stats值的结果加载到表中?

时间:2019-07-26 00:16:33

标签: optimization teradata database-administration

我知道您可以通过对统计信息值执行show命令来确定表是否为块级压缩:

show stats values on DBname.TABLEname
-- BLCPctCompressed >0 means yes

我的问题是,是否可以通过程序或批量方式访问这些结果?我正在研究如何在Teradata系统上节省空间的方法,如果逐表查找非BLC的表可能会很耗时。我想询问是否有一种程序化的方法来报告数据库中所有表的B / Y是否为BLC,然后再进行一些更复杂的操作,例如构造将show stats values on <table>结果导出到文件并运行perl的shell脚本。脚本以评估Y / N的BLC行。也许有一种方法可以将表演的结果插入表格中?类似于create volatile table vt_stat_rslt as (show stats values on db.table) with data on commit preserve rows

3 个答案:

答案 0 :(得分:2)

如果您仅在查找BLC信息,则可以在BLCCompRatio的{​​{1}}列中找到:

dbc.StatsV

答案 1 :(得分:0)

收集统计信息通常存储在dbc.columnstatsvdbc.indexstatsv中。您可以检查这两个dbc视图,看看是否有帮助。

答案 2 :(得分:-1)

否,只能将HELP或SHOW的输出返回给客户端。它不能用作子查询/ CTE或在存储过程中访问。

请考虑直接在数据库节点上运行ferret实用程序(一个命令可以列出有关许多表的信息)。

您可能还会查看CreateFsysInfoTable / PopulateFsysInfoTable宏(请参见《 SQL函数,运算符,表达式和谓词》 手册)以获取和存储有关一个表的信息一次。