Учитывая, что это промежуточные таблицы, наибольшее влияние будет иметь следующее:
Где возможно, используйте распределение хешей.Это даст наилучшую производительность при обработке таблицы на последующих шагах.В то время как документация иногда предлагает распределение round_robin, и это немного быстрее для приема, следующий запрос к таблице будет медленнее.
Всегда используйте статистику.Я предлагаю создавать их вручную, исходя из ожидаемого использования, для большей предсказуемости производительности ELT.Если вы не создадите и не обновите статистику, то в будущем вы получите ужасную производительность.Если вы не хотите вручную управлять статистикой, обязательно включите автоматическую статистику.
Рассмотрим использование табличных структур HEAP и CLUSTERED COLUMNSTORE для промежуточных таблиц.Как правило, промежуточные таблицы обрабатываются по всей строке, и вы можете обнаружить, что ваша производительность лучше на промежуточном уровне, если вы используете HEAP.Это необходимо проверить на ваших данных, поскольку кэширование Gen2, которое дает гораздо большую производительность, не применяется к таблицам кучи.
Определенно создайте таблицы фактов и измерений в качестве кластеризованных индексов хранилища столбцов.Хешируйте ваши факты и реплицируйте ваши измерения (если у вас нет миллиардов измерений строк, в этом случае распределение хешей может быть более подходящим).
Если вы используете алгоритмы CTAS, вам нужна некластеризованнаяиндексы должны быть очень низкими.Обычно я добавляю индексы только тогда, когда вижу проблему с производительностью запроса, которую я не могу решить никаким другим способом.
Наконец, убедитесь, что вы используете подходящий DWU и класс ресурсов.Общее практическое правило заключается в том, что вы не должны использовать ELT ниже DWU500 и LARGERC.Если вы этого не сделаете, вы обнаружите, что у вас плохие кластерные индексы columnstore, что приведет к будущим проблемам с производительностью.