Presupposizione dell’integrità referenziale per i join

In alcuni casi, puoi migliorare le prestazioni delle query per i join selezionando l’opzione Presupponi integrità referenziale dal menu Dati. Se utilizzi questa opzione, Tableau includerà la tabella unita nella query solo se i campi nella vista vi fanno riferimento in modo specifico.

L’utilizzo di questa impostazione è appropriato quando sai che i dati possiedono integrità referenziale (vedi la definizione riportata di seguito) ma il database non impone o non è in grado di imporre l’integrità referenziale. Configurare l’integrità referenziale nel database è un’opzione migliore rispetto all’utilizzo di questa impostazione, poiché può migliorare le prestazioni sia nel database sia in Tableau. L’opzione Presupporre integrità referenziale in Tableau può influire solo sulle prestazioni di Tableau. Se i dati non hanno integrità referenziale e attivi questa impostazione, i risultati delle query potrebbero non essere affidabili.

Per comprendere l’integrità referenziale, immagina di connetterti ai dati di vendita con due tabelle: Vendite e Catalogo prodotti. Queste due tabelle sono illustrate di seguito:

Vendite

ID prodotto (codice esterno)Importo venditeData transazione
110001/10/2012
1200002/10/2012
25030/09/2012
31021/08/2012

Catalogo prodotti

ID prodotto (codice primario)Nome del prodotto
1Tablet da 10 pollici
2Smartphone
3Lampada da tavolo
4Memory stick

Poiché tutti i prodotti venduti devono avere una voce nel Catalogo prodotti, ogni riga della tabella Vendite ha una riga corrispondente nella tabella Catalogo prodotti. Quando queste due tabelle vengono unite all’ID prodotto, otterrai una tabella simile alla seguente:

ID prodottoNome del prodottoID prodottoImporto venditeData transazione
1Tablet da 10 pollici110001/10/2012
1Tablet da 10 pollici1200002/10/2012
2Smartphone25030/09/2012
3Lampada da tavolo31021/08/2012

Supponiamo di creare una vista per esaminare l’Importo vendite per Regione. Per impostazione predefinita, trascinando il campo Importo vendite nella vista puoi creare una query simile alla seguente:

SELECT SUM([Sales Amount]) FROM [Sales] S INNER JOIN [Product Catalog] P ON S.ProductID = P.ProductID

Selezionando Presupporre integrità referenziale indichi a Tableau che le tabelle unite hanno integrità referenziale. In altre parole, confermi che la tabella Vendite avrà sempre una riga corrispondente nella tabella Catalogo prodotti. Poiché ciò è vero, a Tableau non serve alcuna informazione dalla tabella Catalogo prodotti per restituire questi risultati. Quando trascini il campo Importo vendite nella vista, Tableau può semplificare la query in:

SELECT SUM([Sales Amount]) FROM [Sales]

Questa query semplificata può spesso restituire risultati più veloci perché rimuove l’operazione di unione. Questa opzione ha effetto solo sui join interni e non sulle origini dati con una singola tabella.

 

Grazie per il tuo feedback.Il tuo feedback è stato inviato. Grazie!