在 Teradata 中,join 和 where 条件以及相应的 table 使用了 columns/fields 而不解析查询

In Teradata there get columns/fields used by join and where condition and respective table without parsing query

我正在尝试在 Teradata 中自动执行一些查询性能检查。 因此,作为其中的一部分,我想检查连接条件中使用的列是否是各自 table 的主索引,同样地,对于 where 条件中使用的列是否是各自 table 中的分区列。是否有任何直接的 Teradata 查询可以直接给出这个而不解析整个查询。

是的,您可以在其中查询两个 dbc 对象:

  1. dbc.columnsv
  2. dbc.indicesv.

主索引信息将存储在第二个视图中,只需使用您的表名和数据库名称进行搜索。

分区信息存储在 columnsv 中,有一个列的标志值 'Y' 用于分区列。

示例:

SELECT DATABASENAME,TABLENAME,COLUMNNAME FROM DBC.COLUMNSV WHERE PARTITIONINGCOLUMN='Y' where tablename=<> and databasename=<>;


Select * from dbc.indicesv where tablename=<> and databasename=<>;