Aplicar a configuração Pressupor Integridade Referencial no Power BI Desktop
Ao conectar-se a uma fonte de dados usando DirectQuery, você pode usar a opção Assumir integridade referencial para habilitar a execução de consultas mais eficientes na sua fonte de dados. Esse recurso tem alguns requisitos dos dados subjacentes e só está disponível ao usar o DirectQuery.
A configuração Pressupor integridade referencial permite que as consultas na fonte de dados usem as instruções INNER JOIN em vez de OUTER JOIN, o que melhora a eficiência da consulta.
Requisitos para usar Pressupor integridade referencial
Essa é uma configuração avançada habilitada apenas ao se conectar a dados usando o DirectQuery. Os requisitos a seguir são necessários para que Pressupor integridade referencial funcione corretamente:
- Dados na coluna From na relação nunca são nulos ou em branco
- Para cada valor na coluna From, haverá um valor correspondente na coluna To
Nesse contexto, a coluna From é Muitos em uma relação Um-para-muitos ou é a coluna da primeira tabela em uma relação Um-para-um.
Exemplo de uso de Pressupor Integridade Referencial
O exemplo a seguir demonstra como Pressupor integridade referencial se comporta quando usado em conexões de dados. O exemplo conecta-se a uma fonte de dados que inclui uma tabela Orders, uma tabela Products e uma tabela Depots.
Na imagem a seguir que mostra a tabela Orders e a tabela Products, a integridade referencial existe entre Orders[ProductID] e Products[ProductID]. A coluna [ProductID] na tabela Orders nunca é nula e cada valor aparece também na tabela Products. Dessa forma, Assumir integridade referencial deve ser configurado para obter consultas mais eficientes. Usar essa configuração não altera os valores mostrados nos visuais.
Na próxima imagem, observe que nenhuma integridade referencial existe entre Orders [DepotID] e Depots[DepotID] , pois o DepotID é nulo para alguns Orders. Dessa forma, Assumir integridade referencial não deve ser definido.
Por fim, não existe nenhuma integridade referencial entre Orders[CustomerID] e Customers[CustID] nas tabelas a seguir. A CustomerID contém um valor, CustX, que não existe na tabela Clientes. Dessa forma, Assumir integridade referencial não deve ser definido.
Configuração Pressupor integridade referencial
Para habilitar esse recurso, selecione Assumir integridade referencial, conforme mostrado na imagem a seguir.
Quando selecionada, a configuração é validada em relação aos dados para garantir que não haja nenhum nulo ou linhas incompatíveis. No entanto, para casos com um número muito grande de valores, a validação não é garantia de que não haja nenhum problema de integridade referencial.
Além disso, a validação ocorre no momento da edição da relação e não reflete nenhuma alteração subsequente nos dados.
O que acontece se você configurar incorretamente Pressupor integridade referencial?
Se você configurar Assumir integridade referencial quando houver problemas de integridade referencial nos dados, essa configuração não resultará em erros. No entanto, resultará em aparentes inconsistências nos dados. Por exemplo, para a relação com a tabela Depots descrita aqui, resultaria no seguinte:
- Um visual mostrando o total de Quantidade de Ordens mostraria um valor de 40.
- Um visual mostrando o total Order Qty by Depot City mostraria um valor total de apenas 30, pois não incluiria a ID de pedido 1, onde DepotID é Null.
Conteúdo relacionado
- Saiba mais sobre o DirectQuery.
- Obter mais informações sobre Relações no Power BI.
- Saiba mais sobre o modo de exibição de Modelo no Power BI Desktop.