Экономически эффективная проверка ограничений в снежинке

#snowflake-cloud-data-platform

Вопрос:

Пытаюсь написать процедуру для выполнения ежедневной проверки ограничений в таблице Snowflake.

В основном проверьте PK/Уникальную проверку, целостность ссылок и проверку допустимых значений.

Для ПК/Уникальный: Performing basic SELECT PK_COL FROM TABLE GROUP BY PK_COL HAVING COUNT(*)>1

Для FK/Ссылочных: SELECT FK_ID FROM TABLE_1 WHERE NOT EXISTS(SELECT 1 FROM TABLE_2 WHERE FK_ID=PK_ID)

Для Допустимых Значений: SELECT COLUMN_VALUE FROM TABLE GROUP BY 1 MINUS SELECT VALID_VALUE FROM DUAL

Мой вопрос заключается в том, чтобы понять, есть ли какой-либо другой лучший способ, который является экономически эффективным и использует меньше кредитов, поскольку этот процесс будет выполняться ежедневно.

Комментарии:

1. Эти запросы выглядят правильными, но для оптимизации нам нужно получить дополнительную информацию: сколько времени они занимают сейчас? Какова форма существующих данных? Как данные будут меняться ежедневно?

2. Мы имеем дело с DWH корпоративного класса с миллионами записей в таблице. Сейчас они не занимают так много времени, но у нас нет данных о непрерывном запуске.

3. Привет, Анкит, вы рассматривали возможность использования потоков поверх любой таблицы при выполнении проверок RI? Вы можете иметь столько потоков поверх таблиц, сколько захотите, без ограничений; таким образом, вы только сверяете новые строки с другой таблицей. Я использую этот подход при проверке соответствия таблиц-спутников моего хранилища данных родительскому концентратору или таблице ссылок