Что быстрее NVL или COALESCE в Redshift?

У меня есть вариант использования, где у меня есть выбор: применить NVL или COALESCE .
пример: COALESCE(col_1,'alternate_string')

NVL(col_1,'alternate_string')

Я знаю про IS NULL и IS NOT NUll, но подскажите, как я его адаптирую к этому запросу: DELETE FROM TABLE_1 T1 USING TABLE_2 T2 WHERE T1.col_1 = T2.col1 t1.col2 = t2.col2 и так далее. ..... Должен ли я использовать для этого кейсы?
Как будет обрабатывать логические типы. Я хочу знать, какой из них работает быстрее с точки зрения времени выполнения в AWS Redshift?

Ответ NA = Not Applicable. Быстрее в каком запросе? Если вы используете это в предложении WHERE, оба будут ужасно медленными, поскольку оба предотвратят использование индексов. Если вы используете это в SELECT, это не имеет значения, потому что время запроса занимает чтение и фильтрация данных. Простая замена нуля тривиальна по сравнению с этим

Panagiotis Kanavos 22.12.2020 11:16

Так почему ты спрашиваешь? В чем настоящая проблема?

Panagiotis Kanavos 22.12.2020 11:18

@PanagiotisKanavos, я удаляю записи из одной таблицы, используя другую таблицу, ставя условие where, и мы знаем, что null = null дает false. Итак, я делал это, но теперь я думаю, что перейду к Intersection.

Atif 22.12.2020 13:07

Вы делаете это неправильно тогда. Правильный способ сравнения значений NULL в SQL — использовать IS NULL или IS NOT NULL. То, что вы делаете, игнорирует индексы и заставляет запрос сканировать всю таблицу, преобразовывать все значения и только затем фильтровать те, которые необходимо удалить.

Panagiotis Kanavos 22.12.2020 13:23

@PanagiotisKanavos, я знаю о IS NULL и IS NOT NUll, но скажите мне, как я могу адаптировать его к этому запросу: УДАЛИТЬ ИЗ TABLE_1 T1, ИСПОЛЬЗУЯ TABLE_2 T2, ГДЕ T1.col_1 = T2.col1 t1.col2 = t2.col2 и так далее . ..... Должен ли я использовать для этого кейсы?

Atif 22.12.2020 13:25

Отредактируйте вопрос и добавьте туда запрос, объяснив, что вы действительно хотите сопоставить. Если вы хотите сопоставить нулевые значения в обеих таблицах, вы должны использовать t1.col1 is null and t2.col2 is null

Panagiotis Kanavos 22.12.2020 13:39
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
6
1 606
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Они одинаковые:

ОБЪЕДИНЕНИЕ

Синоним выражения NVL.

НВЛ

Выражение NVL идентично выражению COALESCE.

Другие вопросы по теме