Optimizing Correlated Queries

Intelligent storage must have the ability to interpret and process complex requests such as correlated queries. A correlated query is a select expression where a predicate within the query has a relationship to a column that is defined in another scope. Today's business and analytic intelligence tools often generate SQL queries that are nested 3 or 4 layers deep. Queries with cross-nested relationships consume significant processor resources and require more time to complete processing. New algorithms in the SQL Planner of SPD Server implement techniques that significantly improve the performance of correlated queries for patterns that permit query rewrites or query de-correlation.
The SQL Planner improves correlated query performance by changing complex rules about nested relationships into a series of simple steps. SPD Server can process the simple steps much faster than it can process the complex rules that arise with multiple levels of nesting. When a query with multiple levels of nesting is submitted to the SQL Planner, the planner examines the relationships between nested and unnested sections of the query. When a complex nested relation ship is found, the SQL Planner restructures or recodes the SQL query into a simpler form using temporary SPD Server tables.
Development work continues to improve the range of sub-expressions that are addressed by the SPD Server SQL rewrite facility. For more information, see Chapter 8, "SPD Server SQL Query Rewrite Facility" in the SAS Scalable Performance Data (SPD) Server 4.5: Administrator's Guide.