我知道您可以通过对统计信息值执行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
答案 0 :(得分:2)
如果您仅在查找BLC信息,则可以在BLCCompRatio
的{{1}}列中找到:
dbc.StatsV
答案 1 :(得分:0)
收集统计信息通常存储在dbc.columnstatsv
或dbc.indexstatsv
中。您可以检查这两个dbc视图,看看是否有帮助。
答案 2 :(得分:-1)
否,只能将HELP或SHOW的输出返回给客户端。它不能用作子查询/ CTE或在存储过程中访问。
请考虑直接在数据库节点上运行ferret
实用程序(一个命令可以列出有关许多表的信息)。
您可能还会查看CreateFsysInfoTable
/ PopulateFsysInfoTable
宏(请参见《 SQL函数,运算符,表达式和谓词》 手册)以获取和存储有关一个表的信息一次。