Antecedentes:
Eu tenho uma tabela de fatos na fase UAT. Objetivo de carregar 5 anos de dados no Prod (tamanho esperado de registros de 400 Mn). Atualmente, possui apenas 2 anos de dados em teste.
Recursos da tabela:
- Nº de dimensões ~ 45
- Medidas ~ 30
- Medidas não aditivas e outras colunas ~ 25
- Tamanho atual dos dados ~ 200 milhões (dados de 2 anos)
- Exibição de tempo: 3 exibições mensais diferentes: fiscal / calendário / ajustado (ou seja, a mesma linha pode cair em meses diferentes, com base na exibição que se procura)
- Somente uma visualização será necessária por vez por um usuário. (ou seja, apenas uma coluna do mês será usada na consulta, isso nos impede de particionar na exibição de tempo)
- Índices: 1 Índice agrupado nas chaves naturais (8 colunas) .Criado 3 cobrindo índices não agrupados, um na coluna de cada mês, incluindo poucas SKs de dimensão (FKs) e todas as medidas).
- Os índices são enormes (total de 190 GB) por causa disso.
- O espaço não é restritivo (1 TB alocado)
- 64 GB de RAM disponível no servidor.
- A compactação de tabela também foi concluída.
Requisito: as
consultas nesta tabela de fatos devem fornecer o resultado dentro de 30 segundos (as consultas gerais selecionam a soma (medida) que une poucos grupos de dimensões a valores de dimensão). Os relatórios são feitos diretamente na parte superior desta tabela de fatos.
Problema:
qualquer consulta que inclua colunas disponíveis no Índice funciona bem, mas se incluirmos outras colunas que não estão na inclusão ... É uma porcaria. Demora mais de 5 a 10 minutos. Alguém pode sugerir alguma solução onde funcione bem para qualquer dimensão / coluna que selecionamos. O Index pode exibir ajuda nessa situação?
fonte