Кластерные индексы и индексы columnstore
Я только что начал новую работу, где у нас есть много таблиц из процессов ETL. Мне сказали не помещать какие-либо columnstore или кластерные индексы в какие-либо таблицы, поскольку у сервера нет ресурсов (ЦП). Так что в основном все до кучи. На многих таблицах нет кластерных указателей. Мы получаем данные из многих исходных систем, и после того, как данные поступили, мы трансформируем данные и объединяем их ...
Я просто хочу услышать, правильно ли звучит в некоторых настройках отказ от использования columnstore или кластеризованных индексов. Требуется ли больше ЦП для использования кластеризованных индексов при использовании таблиц для аналитики?
Ответы
Практически каждое решение о реализации - это компромисс между конкурирующими факторами. Построение индекса columnstore требует больших затрат ресурсов ЦП, но впоследствии запросы, касающиеся многих строк, выполняются быстро, а обновления - медленными. Что в среднем наиболее важно для вашей рабочей нагрузки? Есть ли временной интервал, в течение которого можно использовать этот объем ЦП без нарушения работы других частей системы? Возмещаются ли дополнительные расходы в будущем? Решением какой проблемы является columnstore, и было ли это решено в других аспектах системы?
Вы упомянули ETL. Часто такие таблицы обрабатываются только как сканирование, когда каждая строка затрагивается каждой операцией. В таких случаях обработка индексов замедлится, поскольку они должны быть записаны в дополнение к таблице.
Вероятно, есть причины для действующих ограничений. Понять, почему они были введены в действие. Если эти обстоятельства больше не действуют (возможно, обновление версии сервера или более качественное оборудование сейчас), попробуйте эксперимент в тестовой среде.