#teradata #unique-constraint
#teradata #уникальное ограничение
Вопрос:
Таким образом, таблицы наборов влияют на производительность, поскольку для каждой новой строки, вставленной или обновленной в таблице, Teradata проверяет, существует ли в таблице повторяющаяся строка, что может быть серьезной проблемой при наличии большого количества записей. Однако мы можем улучшить его производительность, определив уникальное ограничение для любого столбца в таблице SET, например, уникальный первичный индекс (UPI). Это помогает нам избежать дополнительных накладных расходов на выполнение проверки повторяющихся строк, поскольку UPI гарантирует, что повторяющихся строк не будет.
- Означает ли это, что таблица SET с UPI / USI будет иметь ту же производительность, что и таблица MULTISET с UPI / USI? Пожалуйста, объясните.
- И если ваша таблица имеет уникальный первичный индекс, следует ли создавать ее как таблицу НАБОРОВ или таблицу МУЛЬТИМНОЖЕСТВ?
Ответ №1:
Разница в производительности для таблицы НАБОРОВ / наборов с UPI не будет, есть только разница в отношении вставки / выбора: таблица наборов автоматически игнорирует повторяющиеся строки (#строк вставлено меньше, чем #строк выбрано), в то время как таблица с несколькими наборами выдает ошибку (проверки повторяющихся строк выполняются перед проверкой уникальности).
Но добавление USI не предотвратит повторяющиеся проверки строк, новая строка должна быть сначала вставлена в базовую таблицу, чтобы создать ее ROWID, прежде чем она будет вставлена в подтаблицу USI.