BTEQ Число операций, возвращаемых DBS, не соответствует фактическому количеству возвращенных строк - PullRequest
0 голосов
/ 02 января 2012

Когда я экспортирую таблицу из teradata с использованием BTEQ, количество строк в выходных данных не соответствует числу запросов select.Ниже приведено предупреждение, отображаемое BTEQ

Warning: The activity count returned by DBS does not match
              the actual number of rows returned.
              Activity Count=495294, Total Rows Returned=495286

Вот запрос на выборку,

SELECT CUST_ID, SPEC1_CODE FROM Table
GROUP BY 1,2

Вот сценарий создания таблицы,

CREATE MULTISET TABLE Table ,NO FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT
     (
      RECORD_KEY DECIMAL(20,0) NOT NULL,
      CUST_ID VARCHAR(40) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL,
      SPEC1_CODE VARCHAR(50) CHARACTER SET LATIN NOT CASESPECIFIC)
PRIMARY INDEX ( RECORD_KEY );

Когда мыОбратившись в службу поддержки Teradata, они попросили нас выполнить следующий запрос.

DIAGNOSTIC NOAGGRENH ON FOR SESSION;

Итак, если мы выполним вышеуказанный запрос и затем запустим наш экспорт select / BTEQ, он работает нормально.

1 Ответ

2 голосов
/ 05 января 2012

Я надеялся, что вы ответите на мои вопросы в комментарии раньше, но я собираюсь выбросить это как возможную причину несоответствия, которое вы видите в предупреждающем сообщении.

Ваша таблица определяется как MULTISET с неуникальным первичным индексом или, возможно, как таблица NOPI в Teradata 13.x. Нет никаких дополнительных уникальных ограничений на таблицу или уникальные индексы. Таблица была загружена 8 дубликатами строк данных.

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

...