Ошибка Teradata 2641 <tablename>была реструктурирована. Resubmit - PullRequest
0 голосов
/ 23 мая 2019

У меня есть таблица, которую я удаляю и создаю индекс каждый день, и у меня есть другая работа, которая запрашивает эту таблицу с блокировкой ACCESS. Иногда эти задания выполняются одновременно, и тогда я получаю следующую ошибку:

2641 %DBID.%TVMID was restructured. Resubmit.

Я прочитал в документации следующее:

Explanation:
A table was changed before a statement that references the table was processed.
(For example, an index may have been added or a field removed.)

Notes:
The statement may not have the intended result because of the change in the table.

Remedy:
Examine the table and resubmit the request.

https://docs.teradata.com/reader/8MhLDQBmL52OycrEKPuGqg/Ju5pqm9uRFO6VziQdcmA6w

Я полагаю, это потому, что предложение CREATE INDEX запрашивает блокировку EXCLUSIVE, а предложение SELECT ставится в очередь при создании индекса, но когда SELECT извлекается из очереди, таблица имеет другую версию номер, и он терпит неудачу.

Может быть, я совершенно не прав, но, Есть ли способ избежать такого поведения? Что-то на пути к переоценке предложения SELECT, когда оно получает шанс быть исполненным.

Спасибо!

1 Ответ

1 голос
/ 29 мая 2019

Приложение должно обработать 2641 и повторно отправить запрос. Нет никакой возможности, чтобы база данных делала это автоматически.

...