Контекст:
- Табличный сервер и сервер отчетов Power BI в локальной среде для SQL RDBMS и SSAS Tabular (Sql Server 2016)
- Денормализованная таблица данных. На данный момент около 100м записей.
Вызов:
Аналитик выполняет расчеты, требующие MAX (datecol)
Это невозможно в DAX в режиме прямого запроса, поэтому я вернул это в ETL и добавил столбец MaxDate.
Это большой стол, который с каждым днем становится все больше. DTA предложило индекс columnstore, и это имеет для меня смысл. Но эта рекомендация индекса была основана только на запросах SELECT. У меня также будут вставки и удаления (ежедневная партия), и за ними должны будут следовать:
UPDATE table SET MaxDate = MAX(Datecol)
Мне кажется, что это не будет хорошо работать с индексом columnstore, но я его не тестировал. Возможно, зависит от того, кластеризован он или некластеризован?
Правильно ли я говорю, что MaxDate нужно обрабатывать в ETL? Попытка выполнить в DAX в режиме DirectQuery приводит к ошибкам.
Правильно ли я сказал, что нужно проявлять осторожность с индексом columnstore? Или, может быть, это вообще не имеет смысла, потому что потребуется перестроение индекса?
Я ищу путь вперед, который имеет смысл и позволяет избежать проблем.