Aplicar a configuração Assumir Integridade Referencial no Power BI Desktop
Ao se conectar a uma fonte de dados usando o DirectQuery, você pode usar a seleção Assumir integridade referencial para habilitar a execução de consultas mais eficientes em sua fonte de dados. Esse recurso tem alguns requisitos dos dados subjacentes e só está disponível ao usar o DirectQuery.
A configuração Assumir integridade referencial permite que as consultas na fonte de dados usem instruções INNER JOIN em vez de OUTER JOIN, o que melhora a eficiência da consulta.
Requisitos para usar Assumir integridade referencial
Essa configuração é uma configuração avançada e só é habilitada ao se conectar a dados usando DirectQuery. Os seguintes requisitos são necessários para que o Assume integridade referencial funcione corretamente:
- Os dados na coluna De na relação nunca são Nulos ou em branco
- Para cada valor na coluna De, há um valor correspondente na coluna Para
Neste contexto, a coluna De é a Muitos numa relação um-para-muitos , ou é a coluna na primeira tabela numa relação um-para-um .
Exemplo de utilização de Assumir Integridade Referencial
O exemplo a seguir demonstra como Assume integridade referencial se comporta quando usado em conexões de dados. O exemplo se conecta a uma fonte de dados que inclui uma tabela Pedidos, uma tabela Produtos e uma tabela Depósitos.
Na imagem a seguir que mostra a tabela Pedidos e a tabela Produtos , existe integridade referencial entre Pedidos[ProductID] e Products[ProductID]. A coluna [ProductID] na tabela Pedidos nunca é Nula e todos os valores também aparecem na tabela Produtos . Como tal, Assumir integridade referencial deve ser definido para obter consultas mais eficientes. O uso dessa configuração não altera os valores mostrados nos elementos visuais.
Na imagem seguinte, observe que não existe integridade referencial entre Orders[DepotID] e Depots[DepotID], porque o DepotID é Nulo para alguns Pedidos. Como tal, Assumir integridade referencial não deve ser definido.
Finalmente, não existe integridade referencial entre Orders[CustomerID] e Customers[CustID] nas tabelas a seguir. O CustomerID contém um valor, CustX, que não existe na tabela Customers . Como tal, Assumir integridade referencial não deve ser definido.
Configuração Assumir 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 linhas Nulas ou incompatíveis. No entanto, para casos com um número muito grande de valores, a validação não é uma garantia de que não há problemas de integridade referencial.
Além disso, a validação ocorre no momento da edição da relação e não reflete quaisquer alterações subsequentes aos dados.
O que acontece se você definir incorretamente Assumir integridade referencial?
Se você definir Assumir integridade referencial quando houver problemas de integridade referencial nos dados, essa configuração não resultará em erros. No entanto, resulta em aparentes inconsistências nos dados. Por exemplo, para a relação com a tabela Depots descrita aqui, isso resultaria no seguinte:
- Um visual mostrando o Qty total do pedido mostraria um valor de 40.
- Um visual mostrando o total de Order Qty by Depot City mostraria um valor total de apenas 30, porque não incluiria Order ID 1, onde DepotID é Null.
Conteúdos relacionados
- Saiba mais sobre o DirectQuery.
- Obtenha mais informações sobre Relações no Power BI.
- Saiba mais sobre o modo de exibição Modelo no Power BI Desktop.