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
| Catalogo prodotti
|
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 sui join interni e non sulle origini dati con una singola tabella.