Anta referensintegritet för kopplingar
I vissa fall kan du förbättra kopplingars frågeprestanda genom att välja alternativet Anta referensintegritet på menyn Data. När du använder det här alternativet inkluderar Tableau endast den kopplade tabellen i frågan om det specifikt refereras till den av fält i vyn.
Du kan använda den här inställningen när du vet att dina data har referensintegritet (se definitionen nedan), men din databas inte framtvingar eller kan framtvinga referensintegritet. Om du har möjlighet att konfigurera referensintegritet i databasen är detta ett bättre alternativ än att använda den här inställningen eftersom det kan förbättra prestanda i såväl databasen som i Tableau. Alternativet Anta referensintegritet i Tableau kan bara påverka prestanda i Tableaus ända. Om dina data inte har referensintegritet och du aktiverar den här inställningen så finns det risk att frågeresultaten inte blir tillförlitliga.
Om du vill förstå vad referensintegritet är, så föreställ dig att du ska ansluta till säljdata uppdelade i två tabeller: Försäljning och Produktkatalog. Dessa två tabeller visas nedan:
Försäljning
| Produktkatalog
|
Eftersom alla produkter som säljs måste listas i produktkatalogen har varje rad i tabellen Försäljning en matchande rad i tabellen Produktkatalog. När dessa två tabeller kopplas via produkt-ID:t får du en tabell som ser ut så här:
Produkt-ID | Produktnamn | Produkt-ID | Försäljningsbelopp | Transaktionsdatum |
1 | 10 tums surfplatta | 1 | 100 | 2012-10-01 |
1 | 10 tums surfplatta | 1 | 2000 | 2012-10-02 |
2 | Smartphone | 2 | 50 | 2012-09-30 |
3 | Skrivbordslampa | 3 | 10 | 2012-08-21 |
Låt oss säga att du vill skapa en vy som visar försäljningsbelopp per region. Om du drar fältet Försäljningsbelopp till vyn kan en fråga som den här skapas:
SELECT SUM([Sales Amount]) FROM [Sales] S INNER JOIN [Product Catalog] P ON S.ProductID = P.ProductID
Genom att välja Anta referensintegritet talar du om för Tableau att de kopplade tabellerna har referensintegritet. Du bekräftar med andra ord att tabellen Försäljning alltid har en matchande rad i tabellen Produktkatalog. Eftersom detta är sant behöver Tableau ingen information från tabellen Produktkatalog för att returnera dessa resultat. När du drar fältet Försäljningsbelopp till vyn kan Tableau förenkla frågan till:
SELECT SUM([Sales Amount]) FROM [Sales]
Den här förenklade frågan kan ofta returnera snabbare resultat eftersom den gör kopplingsåtgärden överflödig. Det här alternativet påverkar enbart inre kopplingar och påverkar inte datakällor som bara har en tabell.