Учебники

Teradata — настройка производительности

В этой главе обсуждается процедура настройки производительности в Teradata.

объяснять

Первым шагом в настройке производительности является использование EXPLAIN в вашем запросе. План EXPLAIN содержит подробную информацию о том, как оптимизатор выполнит ваш запрос. В плане объяснения проверьте ключевые слова, такие как уровень достоверности, используемая стратегия объединения, размер файла спула, перераспределение и т. Д.

Собирать статистику

Оптимизатор использует демографию данных для разработки эффективной стратегии исполнения. Команда COLLECT STATISTICS используется для сбора демографических данных таблицы. Убедитесь, что статистика, собранная по столбцам, актуальна.

  • Соберите статистику по столбцам, которые используются в предложении WHERE, и по столбцам, используемым в условии соединения.

  • Сбор статистики по столбцам Уникальный первичный индекс.

  • Сбор статистики по столбцам Неуникальный вторичный индекс. Оптимизатор решит, может ли он использовать NUSI или Full Table Scan.

  • Соберите статистику по индексу соединения, хотя статистика по базовой таблице собрана.

  • Сбор статистики по разделам столбцов.

Соберите статистику по столбцам, которые используются в предложении WHERE, и по столбцам, используемым в условии соединения.

Сбор статистики по столбцам Уникальный первичный индекс.

Сбор статистики по столбцам Неуникальный вторичный индекс. Оптимизатор решит, может ли он использовать NUSI или Full Table Scan.

Соберите статистику по индексу соединения, хотя статистика по базовой таблице собрана.

Сбор статистики по разделам столбцов.

Типы данных

Убедитесь, что используются правильные типы данных. Это позволит избежать использования чрезмерного хранения, чем требуется.

преобразование

Убедитесь, что типы данных столбцов, используемых в условии соединения, совместимы, чтобы избежать явного преобразования данных.

Сортировать

Удалите ненужные предложения ORDER BY, если это не требуется.

Спул Пространство Проблема

Ошибка места в буфере генерируется, если запрос превышает ограничение на объем буфера в AMP для этого пользователя. Проверьте план объяснения и определите шаг, который занимает больше места в буфере. Эти промежуточные запросы можно разделить и разместить отдельно для построения временных таблиц.

Основной индекс

Убедитесь, что первичный индекс правильно определен для таблицы. Столбец первичного индекса должен равномерно распределять данные и должен часто использоваться для доступа к данным.

SET Table

Если вы определите таблицу SET, оптимизатор проверит, является ли запись дубликатом для каждой вставленной записи. Чтобы удалить дублирующее условие проверки, вы можете определить уникальный вторичный индекс для таблицы.

ОБНОВЛЕНИЕ на большом столе

Обновление большой таблицы займет много времени. Вместо обновления таблицы вы можете удалить записи и вставить записи с измененными строками.

Удаление временных таблиц

Удалите временные таблицы (промежуточные таблицы) и volatiles, если они больше не нужны. Это высвободит постоянное пространство и освободит место.

МУЛЬТИСЕТ Стол

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