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 vendite Data transazione
1 100 01/10/2012
1 2000 02/10/2012
2 50 30/09/2012
3 10 21/08/2012

Catalogo prodotti

ID prodotto (codice primario) Nome del prodotto
1 Tablet da 10 pollici
2 Smartphone
3 Lampada da tavolo
4 Memory 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 prodotto Nome del prodotto ID prodotto Importo vendite Data transazione
1 Tablet da 10 pollici 1 100 01/10/2012
1 Tablet da 10 pollici 1 2000 02/10/2012
2 Smartphone 2 50 30/09/2012
3 Lampada da tavolo 3 10 21/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 su unioni interne e non sulle origini dati con una singola tabella.

 

Grazie per il tuo feedback.