Dicas | Ferramentas | Notícias | Tutoriais
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ção | Antes | Depois |
|---|---|---|
| Consultas ao banco | 2 | 1 |
| Modelagem | Redundante | Enxuta |
| Riscos | Inconsistência e timeout | Métricas alinhadas |
| Responsabilidade | Oracle carregando tudo | Divisã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.






