Optimizing Looker Performance for Large Scale Data Workloads
- SquareShift Content Team
- 3 days ago
- 7 min read
Updated: 1 day ago
Table of Contents
Understanding Looker Performance Optimization & Challenges
Reduce Load in the Data Model
2.1 Limit Data Joins
2.2 Avoid Temporary Tables When Possible
2.3 Keep Explores Focused
2.4 Use Drill Fields Only Where Required
2.5 Simplify Access Controls
2.6 Reuse Existing Logic
Improve Query Performance
3.1 Simplify Calculations
3.2 Refresh Data Only When Necessary
3.3 Control Data Volume in Explorations
3.4 Use Pre-Aggregated Data
Optimize Platform Usage Settings
4.1 Use Caching Effectively
4.2 Restrict User Access
4.3 Simplify Dashboards
4.4 Schedule Reports During Low-Traffic Times
4.5 Monitor Explore and Dashboard Performance
Performance Benchmarks and Monitoring
Conclusion
1. Understanding Looker Performance Optimization & Challenges
Looker is a modern business intelligence platform that connects directly to your database to provide real-time analytics and data visualization. Unlike traditional BI tools that require data extraction, Looker generates SQL queries dynamically, making it powerful for large-scale data analysis but also sensitive to performance optimization.
As data volumes grow, delays in reports, longer load times, and inconsistent performance are common signs of a setup that needs attention.
This guide outlines specific steps to improve Looker's performance when working with large datasets, covering everything from data model optimization to platform usage best practices.
2. Reduce Load in the Data Model
Improving performance starts with optimizing how data is structured and exposed in Looker. A lean and efficient model ensures that queries stay fast and manageable, even when processing datasets with hundreds of millions of records.

2.1 Limit Data Joins
Only connect tables that are required for reporting. Each additional join can exponentially increase query complexity and execution time. Avoid unnecessary joins and include forced joins only when business logic absolutely requires them. When working with frequently-joined tables, consider denormalizing the data structure to reduce the complexity of real-time query execution.
2.2 Avoid Temporary Tables When Possible
Persistent Derived Tables (PDTs) should be used with caution in your optimization strategy. While PDTs can improve performance for complex transformations, they also consume significant resources. PDT builds can take 15-45 minutes for large datasets, and failed PDT refreshes can cascade into dashboard failures. If the same data is already available in a stable form, it is better to use that. Reducing dependency on PDTs helps lower system based on Looker's PDT performance documentation.
2.3 Keep Explores Focused
Limit the number of fields available in each Explore to enhance overall performance. Studies indicate that Explores with over 100 fields can slow query selection by 3-5 seconds, significantly impacting user experience. Only show relevant dimensions and measures, typically aiming for 20-50 key fields per Explore. Hide non-essential fields to prevent users from selecting them accidentally, which can lead to unnecessarily complex queries on large datasets.
2.4 Use Drill Fields Only Where Required
Drill-down fields increase complexity and can impact optimization efforts significantly. Add them only to fields where users need to explore additional details. Each drill field adds approximately 10-15% to query processing time according to performance benchmarks. Keep the structure simple by limiting drill capabilities to high-value business metrics and maintaining drill structures to a maximum of 2-3 levels.
2.5 Simplify Access Controls
Avoid complex logic to control user-level access, as this can dramatically impact performance. Complex access filters can slow queries, particularly when dealing with large user bases. Use simple filters that rely on attributes or predefined roles instead of intricate conditional logic. When possible, implement access controls at the database level rather than within Looker, as this approach typically yields better performance results.
2.6 Reuse Existing Logic
Instead of repeating the same field definitions across views, reuse existing dimensions and measures where possible. This keeps the model consistent and efficient while reducing LookML compilation time by 20-30%. Reusing logic also simplifies maintenance and updates, enabling better query plan optimization across your entire Looker implementation.
3. Improve Query Performance
Once the model is optimized, the next step is to make sure queries are running efficiently. This reduces wait times and improves the user experience dramatically, often transforming query times from minutes to seconds.

3.1 Simplify Calculations
Avoid deeply nested logic and reduce the use of multiple conditional statements in your calculated fields. Complex calculations can increase query time. Keep calculated fields clean and readable, typically limiting nested conditions to fewer than five levels. When possible, use database-native functions rather than Looker's calculation engine, as these often perform significantly better with large datasets.
3.2 Refresh Data Only When Necessary
Avoid refreshing derived tables more often than needed, as this approach can consume substantial system resources.Use trigger conditions or custom logic to decide when updates are actually required based on actual data changes rather than arbitrary time schedules. For large datasets, consider implementing incremental refreshes instead of full table rebuilds.
3.3 Control Data Volume in Explorations
Set row limits for queries to prevent excessive data from being pulled during analysis sessions. The default limit is 500 rows, which can be adjusted based on specific use cases. Apply appropriate limits to match user needs, typically using 1,000-5,000 rows for detailed analysis and reserving 10,000+ row limits specifically for data exports. Implement automatic query cancellation for queries that exceed reasonable time thresholds to prevent system resource exhaustion.
3.4 Use Pre-Aggregated Data
For large datasets exceeding 10 million rows, use pre-summarized tables instead of recalculating values each time users access reports. Aggregate tables can improve query performance by 10 to 100 times, making this one of the most effective optimization strategies available. Looker supports aggregate awareness, which automatically redirects queries to these lighter tables when applicable. Monthly and weekly summary tables are often 95% faster than row-level calculations, providing substantial performance benefits for routine reporting needs.
4. Optimize Platform Usage Settings
Good performance also depends on how Looker is used daily. Adjusting usage patterns and platform-level settings can reduce unnecessary load by 30-50% while improving the overall user experience.

4.1 Use Caching Effectively
Enable caching for repeated queries as a cornerstone of performance optimization. Result caching can reduce query time by 80-90% for repeated requests, making it one of the most impactful optimization techniques available. Use both result caching and PDT caching where possible, and combine this with aggregate tables to reduce repeated calculations. Set cache expiration times based on data freshness requirements, typically ranging from 1-24 hours depending on business needs and data update frequency.
4.2 Restrict User Access
Give users access only to the Explores and fields they need for their specific roles and responsibilities. Limiting access prevents accidental queries on large datasets and reduces query load by 20-40% across the entire system. Implement role-based access controls for different user types, including viewers, analysts, and administrators. Use content access controls strategically to limit dashboard visibility based on user needs and data sensitivity requirements.
4.3 Simplify Dashboards
Avoid dashboards with too many tiles, filters, or visual elements, as these can significantly impact loading performance. Dashboards with more than 15 tiles can take 60+ seconds to load, particularly when multiple data sources are involved. Complex dashboards take longer to load and can lead to performance issues that cascade across the entire system. Break down large dashboards into smaller views if needed, typically limiting dashboards to 5-10 tiles for optimal performance. Use dashboard-level filters instead of multiple individual tile filters to reduce query complexity.
4.4 Schedule Reports During Low-Traffic Times
Avoid scheduling frequent reports during business hours when interactive users need real-time access to dashboards and explores. Schedule reports during off-peak times, typically between 2-6 AM local time, to prevent conflicts with interactive users. Distribute large report schedules across different time slots rather than clustering them together, and use incremental data loads instead of full refreshes when possible to minimize system impact.
4.5 Monitor Explore and Dashboard Performance
Use Looker's built-in monitoring tools to check which Explores or dashboards are slow and consistently exceed 10-15 second load times. Review logs regularly to identify problem areas before they affect users. Set up automated alerts for queries exceeding performance thresholds, and establish regular review processes to address performance issues proactively.
5. Performance Benchmarks and Monitoring
Understanding performance benchmarks helps measure the success of optimization efforts and provides clear targets for improvement. Simple queries involving 1-2 tables should complete in under 5 seconds, while medium complexity queries with 3-5 tables should finish within 5-15 seconds. Complex queries involving 5+ tables may require 15-30 seconds, and dashboard loads should complete in under 10 seconds for 80% of use cases.
System resource benchmarks provide additional guidance for optimization success. PDT refresh times should stay under 30 minutes for tables with 50+ million rows, and the system should support 50-100 concurrent users without performance degradation. Memory usage should remain below 80% of available system resources during peak times, and query success rates should exceed 95% without timeouts.
From a user experience perspective, successful optimization typically results in dashboard adoption rates exceeding 70% among intended users, query abandonment rates below 10%, and user satisfaction scores of 4+ out of 5 for dashboard responsiveness.
Continuous monitoring requires weekly performance reviews to analyze slow-running queries and optimize them, review PDT performance and refresh schedules, check system resource utilization trends, and update user access permissions based on actual usage patterns. Monthly optimization audits should focus on reviewing data model complexity, assessing dashboard usage patterns, updating aggregate tables based on query patterns, and benchmarking performance improvements against previous months.
6. Conclusion
Looker performance issues are often caused by a combination of model complexity, heavy queries, and inefficient usage. By reviewing each of these areas and applying the improvements listed above, teams can reduce delays and improve reporting speed across large datasets.

Successful optimization typically results in 60-80% reduction in dashboard load times, query response time improvements from minutes to seconds, support for 3-5 times more concurrent users, and achievement of 95%+ query success rates even with large datasets.
The key to effective optimization lies in taking a systematic approach that addresses data modeling, query optimization, and usage patterns simultaneously. Organizations that implement these strategies consistently see substantial improvements in user adoption and overall business intelligence effectiveness.
Need Help Reviewing Your Looker Setup?
We help teams improve Looker performance without changing their entire reporting structure. Our expertise includes comprehensive data model cleanup and restructuring for 50-80% performance improvements, dashboard tuning and simplification to reduce load times, query optimization strategies for complex analytical workloads, and scaling analytics infrastructure across terabyte and petabyte datasets.
Our clients typically see 60-90% improvement in dashboard performance and 3-5 times increase in user adoption rates within 30-60 days of implementation. Reach out for support on model cleanup, dashboard tuning, or scaling analytics across larger data volumes with a customized optimization approach tailored to your specific data environment and user needs.
Ready to optimize your Looker setup? Contact us for a customized optimization approach tailored to your specific data environment and user needs.