Справочная информация: у
меня есть таблица фактов в фазе UAT. Задача загрузить данные за 5 лет в Prod (ожидаемый размер записей 400 млн.). В настоящее время он имеет только 2 года данных в тесте.
Особенности стола:
- Количество Размеров ~ 45
- Меры ~ 30
- Неаддитивные меры и другие столбцы ~ 25
- Текущий размер данных ~ 200 миллионов (данные за 2 года)
- Представление времени: 3 разных представления месяца: фискальное / календарное / скорректированное (т. Е. Одна и та же строка может приходиться на разные месяцы в зависимости от того, какой вид ищется)
- Только один вид будет требоваться за один раз пользователем. (т. е. в запросе будет использоваться только один столбец месяца, он останавливает нас для разделения по времени)
- Индексы: 1 Кластерный индекс на натуральных ключах (8 столбцов). Создан 3, охватывающий некластеризованные индексы, один на столбец каждого месяца, включая несколько SK измерений (FK) и все меры).
- Индексы огромные (всего 190 ГБ) из-за этого.
- Пространство не ограничено (выделено 1 ТБ)
- 64 ГБ оперативной памяти доступно на сервере.
- Сжатие таблицы также сделано.
Требование:
запросы к этой таблице фактов должны давать результат в течение 30 секунд (общие запросы выбирают сумму (меру), присоединяющуюся к группе Dims по значениям Dim). Отчеты создаются непосредственно над таблицей фактов.
Проблема:
любой запрос, включающий столбцы, доступные в индексе, работает нормально, но если мы включим любые другие столбцы, которых нет в include .. Это отстой. Это займет более 5-10 минут. Может ли кто-нибудь предложить какое-нибудь решение, где оно прекрасно работает для любого размера / столбца, который мы выберем Может ли представление индекса помочь в этой ситуации?
источник