Ajuda com SQL Server / Consumo de tabelas

SQL Server

SQL

17/10/2019

Bom dia, pessoal!

Preciso encontrar a melhor saída para um problema que estou tendo no trabalho (obs: não tenho um alto conhecimento técnico em SQL Server).

Temos alguns painéis construídos em Power BI conectados à um SQL Server no formato de Direct Query ("On-line" ; cada vez que o painel é consumido, ele bate no banco para trazer as informações).

Porém, as informações são armazenadas nas tabelas originais de movimentação no nível de granularidade mais baixo (Nota Fiscal / Item), e na pratica os dados são utilizados de maneira agrupada. Na tentativa de simplificar este processo (e o consumo do banco), foram criadas Views no SQL Server 2014 que agrupam estes dados. No entanto, na pratica, as views não auxiliaram em nada, pois ainda há um processamento muito alto (com vários JOINS, filtros e funções, GROUP BY, etc) rodando "por trás" dessas Views, visto que elas não são tabelas físicas.

Minha ideia seria utilizar o resultado da query dessas views para criar uma tabela física. Dessa maneira, a cada consulta não seria necessário rodar todo processamento novamente, mas sim apenas consumir os dados de uma unica e simples tabela.

É possível criar uma tabela a partir do resultado de uma query e configurar uma atualização para essa tabela (Ex: de 15 em 15 minutos)? Já identifiquei que sim, é possível criar uma tabela a partir de uma query através do "SQL INSERT INTO SELECT" Statement. Porém, é possível configurar uma "atualização" pra essa tabela de X em X minutos/horas/dias, em que ela rodaria o SELECT novamente e criaria a tabela a partir dos resultados obtidos?

Obrigado.
Gustavo Aguiar

Gustavo Aguiar

Curtidas 0

Respostas

Alex Lekao

Alex Lekao

17/10/2019

Olá Gustavo, boa tarde!!!

Você pode tentar rodar esses scripts no Job do SQL Server, nele você coloca a frequencia de execução.

Uma outra alteranativa que pode ser ainda melhor é o SSIS(SQL Server Integration Service), nele você faz a mesma coisa que você mencionou acima, mas numa estrutura diferenciada.

Pesquise a respeito, não é difícil de fazer, particularmente não utilizo aqui no trabalho, por N motivos.

Espero ter ajudado.
GOSTEI 0
Emerson Nascimento

Emerson Nascimento

17/10/2019

VIEW não resolve nada sem índices.

Você já avaliou o plano de execução das pesquisas pra identificar onde está o gargalo?

Já tive queries que levavam 3 minutos pra executar, e com a criação dos índices pertinentes, caiu pra pouco mais de 2 segundos.

GOSTEI 0
POSTAR