SQL Parallel Execution Recommendation via Cost-Based Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current relational database management systems lack an automated mechanism to determine whether a SQL statement can benefit from parallel execution, leading to potential performance overhead and ineffective or detrimental impact on database servers.

Innovation Solution

A method is provided to automatically determine if a SQL statement can be executed in parallel and if parallel execution is faster than serial execution by a predetermined factor, including determining CPU availability, statement type, and using a cost-based optimizer to assess response times, and generating recommendations with performance statistics.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If parallel execution is enabled for SQL statements, then response time is reduced, but performance overhead increases and throughput of other concurrent statements decreases

Engineering Contradiction:
Improveresponse timeVSAvoidthroughput
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The system changes the execution parameter from serial to parallel mode based on analyzed characteristics of the SQL statement (such as complexity, data volume, and workload type). This parameter change enables the system to adaptively select the execution mode that optimizes response time while minimizing impact on overall throughput.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The database system automatically analyzes SQL statements and determines whether parallel execution is appropriate without requiring manual intervention. The system self-evaluates the statement characteristics and makes autonomous decisions about execution mode, thereby reducing the burden on database administrators while optimizing performance.

Inventive Principle:
Principle #25Self-service

2Loss of time

If parallel execution is used for all SQL statements, then response time improves, but system complexity increases and resource consumption increases

Engineering Contradiction:
Improveresponse timeVSAvoidsystem complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system applies different execution strategies to different SQL statements based on their local characteristics. Instead of uniformly applying parallel execution to all statements, the system analyzes each statement's specific properties (such as query complexity, data access patterns, and workload type) and applies parallel execution only where it provides benefit, thereby reducing overall system complexity.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system performs preliminary analysis of SQL statements before execution to determine their suitability for parallel processing. By evaluating statement characteristics in advance (such as analyzing query structure, estimated data volumes, and potential resource requirements), the system pre-determines the optimal execution mode, avoiding the need for complex runtime decisions and reducing system complexity during execution.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If parallel execution is automatically enabled, then response time is optimized, but lack of automated determination mechanism leads to ineffective or detrimental performance impact

Engineering Contradiction:
Improveresponse timeVSAvoidperformance impact
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The system incorporates feedback mechanisms that continuously monitor the performance impact of parallel execution. By analyzing execution results, resource consumption patterns, and statement characteristics, the system adjusts its parallel execution decisions in real-time, ensuring that parallel processing provides beneficial performance impact rather than detrimental effects.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary analysis of SQL statements before execution to determine their suitability for parallel processing. By evaluating statement characteristics in advance (such as analyzing query structure, estimated data volumes, and potential resource requirements), the system pre-determines the optimal execution mode, avoiding the need for complex runtime decisions and reducing system complexity during execution.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9256642B2Techniques for recommending parallel execution of SQL statements
Publication Date: 2016.02.09 ORACLE INT CORP
  • US9256642B2 patent drawing
  • US9256642B2 patent drawing
  • US9256642B2 patent drawing

AI summary

Techniques for automatically recommending parallel execution of a SQL statement. In one set of embodiments, a first determination can be made regarding whether a SQL statement can be executed in parallel. Further, a second determination can be made regarding whether executing the SQL statement in parallel is faster than executing the statement in serial by a predetermined factor. If the first determination and second determination are positive (i.e., the statement can be executed in parallel and parallel execution is faster by the predetermined factor), a recommendation can be provided indicating that the SQL statement should be executed in parallel. In some embodiments, the recommendation can include a report specifying the degree of performance improvement gained from parallel execution, additional system resources consumed by parallel execution, and other statistics pertaining to the recommended parallel execution plan.