Partilhar via


Orientação de dobragem de consulta no Power BI Desktop

Este artigo destina-se a modeladores de dados que desenvolvem modelos no Power BI Desktop. Fornece orientações de práticas recomendadas sobre quando — e como — pode obter a dobragem do Power Query.

A dobragem de consulta é a capacidade de uma consulta do Power Query gerar uma única instrução de consulta que recupera e transforma dados de origem. Para obter mais informações, consulte Dobragem de consulta do Power Query.

Orientação

A orientação de dobragem de consulta difere com base no modo de modelo.

Para uma tabela de modo de armazenamento DirectQuery ou Dual , a consulta do Power Query deve obter dobragem de consulta.

Para uma tabela Import , talvez seja possível obter dobragem de consulta. Quando a consulta é baseada em uma fonte relacional — e se uma única instrução SELECT pode ser construída — você obtém o melhor desempenho de atualização de dados garantindo que o dobramento da consulta ocorra. Se o mecanismo de mashup do Power Query ainda for necessário para processar transformações, você deve se esforçar para minimizar o trabalho que ele precisa fazer, especialmente para modelos semânticos grandes.

A lista com marcadores a seguir fornece orientações específicas.

  • Delegar o máximo de processamento possível à fonte de dados: quando todas as etapas de uma consulta do Power Query não puderem ser dobradas, descubra a etapa que impede a dobragem da consulta. Quando possível, mova as etapas posteriores mais cedo em sequência para que possam ser fatoradas na dobragem da consulta. Observação O mecanismo de mashup do Power Query pode ser inteligente o suficiente para reordenar suas etapas de consulta quando gerar a consulta de origem.

    Para uma fonte de dados relacional, se a etapa que impede a dobragem de consulta puder ser alcançada em uma única instrução SELECT — ou dentro da lógica processual de um procedimento armazenado — considere o uso de uma consulta SQL nativa, conforme descrito a seguir.

  • Usar uma consulta SQL nativa: quando uma consulta do Power Query recupera dados de uma fonte relacional, é possível que algumas fontes usem uma consulta SQL nativa. A consulta pode, de fato, ser qualquer instrução válida, incluindo uma execução de procedimento armazenado. Se a instrução produzir vários conjuntos de resultados, somente o primeiro será retornado. Os parâmetros podem ser declarados na instrução e recomendamos que você use a função Value.NativeQuery M. Esta função foi projetada para passar valores de parâmetros de forma segura e conveniente. É importante entender que o mecanismo de mashup do Power Query não pode dobrar etapas de consulta posteriores e, portanto, você deve incluir toda — ou tanto — lógica de transformação na instrução de consulta nativa.

    Há duas considerações importantes que você precisa ter em mente ao usar consultas SQL nativas:

    • Para uma tabela de modelo DirectQuery, a consulta deve ser uma instrução SELECT e não pode usar CTEs (Common Table Expressions) ou um procedimento armazenado.
    • A atualização incremental não pode usar uma consulta SQL nativa. Assim, isso forçaria o mecanismo de mashup do Power Query a recuperar todas as linhas de origem e, em seguida, aplicar filtros para determinar alterações incrementais.

    Importante

    Uma consulta SQL nativa pode potencialmente fazer mais do que recuperar dados. Qualquer instrução válida pode ser executada (e possivelmente várias vezes), incluindo uma que modifique ou exclua dados. É importante que você aplique o princípio do menor privilégio para garantir que a conta usada para acessar o banco de dados tenha apenas permissão de leitura nos dados necessários.

  • Preparar e transformar dados na origem: quando identificar que determinadas etapas de consulta do Power Query não podem ser dobradas, talvez seja possível aplicar as transformações na fonte de dados. As transformações podem ser alcançadas escrevendo uma exibição de banco de dados que transforma logicamente os dados de origem. Ou, preparando e materializando dados fisicamente, antes de o Power BI consultá-los. Um data warehouse relacional é um excelente exemplo de dados preparados, geralmente consistindo em fontes pré-integradas de dados organizacionais.

Para obter mais informações sobre este artigo, consulte os seguintes recursos: