Tableau performance optimization is critical for enterprise deployments. Master extraction, query optimization, caching, and best practices for large datasets (100M+ rows).
Extract Optimization: The Foundation
Extract vs Live Trade-offs: Live: real-time data, slow queries (100M+ rows timeout). Extract: snapshot (HYPER format), fast (100x faster). Extract size: query reduces rows (WHERE clause), aggregation reduces cardinality. Incremental extract: update only new/changed rows (faster refresh). Full extract: replace entire dataset (slow but fresh).
Reducing Extract Size: Filter at query: SELECT year > 2020 (exclude old data). Aggregate: daily summary table instead of transaction-level. Denormalization: pre-join tables (reduce query joins). Column selection: include only necessary columns (exclude unused). Data types: INT vs BIGINT (size impact). Result: 100M → 10M rows (90% reduction), faster refresh.
Refresh Scheduling: Schedule extracts: off-peak hours (midnight, weekends). Incremental: update daily (small delta). Full refresh: weekly/monthly (ensure freshness). Monitor refresh time: alert if > threshold. Parallel refresh: stagger multiple extracts (avoid resource contention). Result: fresh data without peak-hour slowdown.
5 Complete Solved Interview Problems
Question 1: Optimize Slow 500M Row Extract
Extract takes 120 min. Refresh window 4 hours. Target 30 min. Strategy?
Optimization steps:
1. Filter data: exclude 2020 (old), keep 2021+ (400M rows)
2. Aggregate: daily summary table (transactions → aggregates)
3. Incremental extract: daily delta only (delta 10M rows/day)
4. HYPER format: compression (saves 20-30%)
5. Database index: date, customer_id columns
Result: 120 → 25 min extract (5x improvement)
Google – Data Platform Engineer
Question 2: Diagnose Dashboard Slowness
Dashboard 10 sec load time (target 2 sec). 5 worksheets. Identify bottleneck?
Results: Worksheet A (3 sec), B (2 sec), C (4 sec – SLOW), D (0.5 sec), E (0.5 sec)
Worksheet C: LOD + table calc + 200k marks
Optimization: Remove LOD (pre-aggregate in extract), reduce marks (filter or limit), remove table calc
Result: C (4 sec → 1 sec), Dashboard (10 → 5 sec). Further: lazy load C (hide by default)
Meta – Senior Analytics Engineer
Question 3: Implement Incremental Extract
Daily transaction data (10M rows/day). Full extract 2 hours. Incremental strategy?
1. Source column: transaction_date (date when created)
2. Extract filter: [transaction_date] > [Tableau Increment Timestamp]
3. Schedule: Full extract weekly (Sunday), Incremental daily
4. Tableau manages timestamp (auto)
Result: Incremental (15 min per day), Full (2 hours weekly)
Week: 5 incremental (5×15=75 min) + 1 full (2 hours) = 2.75 hours total
Amazon – Data Engineer
Question 4: Optimize Worksheet Query
Worksheet slow (8 sec). Data: 100M customer records, complex joins, 3 LOD expressions. Solutions?
1. Remove LOD (pre-calculate in extract as separate table)
2. Simplify joins: use extract (pre-joined) instead of live query
3. Add filter: [Year] = 2024 (reduce 100M → 20M rows)
4. Limit marks: hide detail, aggregate to region level
5. Index: primary keys, foreign keys in database
Result: 8 sec → 1.5 sec query. Worksheet responsive.
Apple – Analytics Engineer
Question 5: Server Capacity Planning
Tableau Server: 500 concurrent users, dashboards 5-10 sec load. Add nodes or optimize?
Optimization first (cheaper):
1. Reduce extract refresh (shift off-peak)
2. Implement query caching (24-hour default)
3. Optimize slow worksheets (reduce LOD, filter)
4. Enable summary data caching (aggregate on server)
Result: 5-10 sec → 2-3 sec (per-user improvement)
If still slow: Add 2 query processing nodes (distributes load)
Capacity: 4-core node handles ~100 concurrent users
Microsoft – Senior Analytics Manager
15 Practice Questions
Question 6: Use materialized view: pre-aggregate transactions to daily level. How does querying from summary view improve dashboard performance vs raw tables?
Question 7: Partition extract by year or region: separate extracts for each partition. When is partitioning worth the complexity?
Question 8: Create summary tables in database layer: pre-aggregate data before publishing to Tableau. Extract from summary vs raw?
Question 9: Live connection returns timeout error on 1B row table. Diagnosis: query taking > 30 sec. Remediation strategies?
Question 10: Extract refresh fails silently: monitor alerts. How to set up notifications when extract refresh fails? What to check first?
Question 11: Compare HYPER vs TDE extract formats. Compression ratio difference? Speed difference? Backward compatibility?
Question 12: Tableau Bridge: hybrid extract + live approach. When to use Bridge instead of pure live or extract?
Question 13: Query result cache: Tableau Server caches 24 hours by default. Can this timeout be customized? Tradeoff of longer cache?
Question 14: Background jobs: extract refresh vs subscription vs query priority. How does Tableau Server queue jobs?
Question 15: Database indexing: primary key vs compound index performance. How to ensure Tableau benefits from database indexes?
Question 16: Enable query logging: capture slow queries for analysis. SQL Server, PostgreSQL, MySQL logging syntax?
Question 17: Tableau Server memory allocation: how much RAM needed? Scaling factors (number of concurrent users, dataset size)?
Question 18: Workbook publishing: check dependencies on data sources, calculations, parameters. Impact on performance?
Question 19: Subscription performance: scheduled dashboard delivery vs on-demand viewing. Load balancing considerations?
Question 20: Disaster recovery: backup extract files, schedule periodic full exports. Recovery time objective (RTO) vs recovery point objective (RPO)?
Master Tableau Performance Optimization
Get our comprehensive Data Analytics: Ace All The Interview Concepts course.