Teradata: производительность множества и таблицы наборов

#teradata #unique-constraint

#teradata #уникальное ограничение

Вопрос:

Таким образом, таблицы наборов влияют на производительность, поскольку для каждой новой строки, вставленной или обновленной в таблице, Teradata проверяет, существует ли в таблице повторяющаяся строка, что может быть серьезной проблемой при наличии большого количества записей. Однако мы можем улучшить его производительность, определив уникальное ограничение для любого столбца в таблице SET, например, уникальный первичный индекс (UPI). Это помогает нам избежать дополнительных накладных расходов на выполнение проверки повторяющихся строк, поскольку UPI гарантирует, что повторяющихся строк не будет.

  1. Означает ли это, что таблица SET с UPI / USI будет иметь ту же производительность, что и таблица MULTISET с UPI / USI? Пожалуйста, объясните.
  2. И если ваша таблица имеет уникальный первичный индекс, следует ли создавать ее как таблицу НАБОРОВ или таблицу МУЛЬТИМНОЖЕСТВ?

Ответ №1:

Разница в производительности для таблицы НАБОРОВ / наборов с UPI не будет, есть только разница в отношении вставки / выбора: таблица наборов автоматически игнорирует повторяющиеся строки (#строк вставлено меньше, чем #строк выбрано), в то время как таблица с несколькими наборами выдает ошибку (проверки повторяющихся строк выполняются перед проверкой уникальности).

Но добавление USI не предотвратит повторяющиеся проверки строк, новая строка должна быть сначала вставлена в базовую таблицу, чтобы создать ее ROWID, прежде чем она будет вставлена в подтаблицу USI.