Preciso mesmo duplicar consulta no PowerBI?

Certa vez, enquanto eu revisava algumas tabelas usadas em um dashboard no Power BI, algo me chamou a atenção, duplicidade na consulta do banco, portanto, veio a pergunta, “Preciso duplicar consulta no PowerBI?”.

O cenário era duas tabelas, FATO_VENDA e DIM_TICKET,estavam fazendo praticamente a mesma consulta no banco.

A única diferença? O tipo de agregação.

Isso significava que o Power BI estava enviando duas chamadas separadas para o banco, com os mesmos filtros, mesma origem e mesma granularidade — apenas para gerar métricas diferentes.

Foi então que surgiu a pergunta:

💭 “Será que eu realmente preciso consultar o banco duas vezes?”

A resposta: não.

🤔 Por que isso acontece?

É comum pensar assim (especialmente no começo):

“Cada tabela lógica precisa de uma consulta SQL própria.”

Mas quando estamos trabalhando com:

  • Mesma origem de dados
  • Mesmo nível de detalhamento
  • Mesmos filtros
  • Apenas métricas diferentes

…então o que temos, na verdade, é retrabalho — e pior: uma sobrecarga totalmente desnecessária no banco.

E dependendo do volume da base (no meu caso: milhões de registros) isso pode trazer alguns problemas:

🚨 lentidão
🚨 gargalos de performance
🚨 aumento de custo
🚨 risco de timeout

🔍 O Cenário Antes da Otimização

As consultas originais eram:

📍 Consulta 1 — DIM_TICKET

SELECT
    DATA,
    LOJA,
    CAIXA,
    COUNT(DISTINCT NUMERO_CUPOM) AS QTD_CUPONS
FROM VENDAS
WHERE DATA >= '01-JAN-2025'
AND LOJA <> 1
GROUP BY DATA, LOJA, CAIXA;

📍 Consulta 2 — FATO_VENDA

SELECT
    DATA,
    LOJA,
    CAIXA,
    SUM(QUANTIDADE) AS QTD,
    SUM(VALOR) AS FATURAMENTO
FROM VENDAS
WHERE DATA >= '01-JAN-2025'
AND LOJA <> 1
GROUP BY DATA, LOJA, CAIXA;

Mesmo filtro.
Mesma origem.
Mesma granularidade.

👉 Não fazia sentido duplicar a operação.

💡 A Solução

Ao invés de criar duas consultas no Power BI, fiz o seguinte:

Uma única consulta SQL com todos os dados necessários
A segunda tabela foi criada internamente no Power BI usando DAX

🛠 Consulta final no banco

SELECT
    DATA,
    LOJA,
    CAIXA,
    NUMERO_CUPOM,
    QUANTIDADE,
    VALOR
FROM VENDAS
WHERE DATA >= '01-JAN-2025'
AND LOJA <> 1;

🧮 Tabela derivada criada no Power BI (DAX)

DIM_TICKET =
SUMMARIZE (
    FATO_VENDA,
    FATO_VENDA[DATA],
    FATO_VENDA[LOJA],
    FATO_VENDA[CAIXA],
    "QTD_CUPONS", DISTINCTCOUNT ( FATO_VENDA[NUMERO_CUPOM] )
)

Quer saber mais sobre tabela derivada no PowerBI? Acesse esse meu post aqui

🚀 Antes vs Depois

SituaçãoAntesDepois
Consultas ao banco21
ModelagemRedundanteEnxuta
RiscosInconsistência e timeoutMétricas alinhadas
ResponsabilidadeOracle carregando tudoDivisão entre banco + Vertipaq

🧠 O Aprendizado

Esse caso reforçou algo simples, mas essencial para quem trabalha com Power BI:

Nem tudo que vira tabela precisa ser uma nova consulta no banco.
Muitas vezes, a informação já está disponível — só falta reaproveitar.

🔗 Referência

Noções básicas DAX
Guia DAX

Compartilhe:
Elvis Amorim

Elvis Amorim

Apaixonado por tecnologia e por compartilhar conhecimento. Tenho mais de 15 anos de experiência nas áreas de varejo, administração e informática, atuando como analista de sistemas e de dados. No TecProdutiva, reúno tudo o que aprendi para ajudar pessoas a usarem a tecnologia de forma simples e produtiva.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *