В Teradata есть столбцы / поля, используемые объединением и где условие и соответствующая таблица без запроса синтаксического анализа - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь автоматизировать некоторые проверки производительности по запросу в Teradata. Поэтому в качестве части этого я хочу проверить, являются ли столбцы, используемые в условии соединения, первичным индексом соответствующей таблицы или нет, и аналогично для столбцов, используемых в тех случаях, когда условие является столбцом раздела в соответствующей таблице или нет. Есть ли прямой запрос Teradata, который может дать это напрямую, не разбирая весь запрос.

1 Ответ

0 голосов
/ 18 июня 2019

Да, есть два объекта 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=<>;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...