Updated on 2024-10-14 GMT+08:00

Overview

Various factors must be considered during GaussDB performance tuning. Therefore, optimization personnel must know well about knowledge, such as system software architecture, hardware and software configuration, database parameter configuration, concurrency control (The current feature is a lab feature. Contact Huawei technical support before using it.), query processing, and database applications.

Performance tuning sometimes require cluster restart, which may interrupt current services. Therefore, after the service goes live and when the cluster needs to be restarted, you must send the request to related management department about the operation time window for approval.

Tuning Process

Figure 1 shows the procedure of performance tuning.

Figure 1 GaussDB performance tuning

Table 1 lists the details about each phase.

Table 1 GaussDB performance tuning

Phase

Description

Determining the Scope of Performance Tuning

The phase where the CPU, memory, I/O, and network resource usage of each cluster node are obtained to check whether these resources are fully used and whether any bottleneck exists

SQL Optimization

The phase where the SQL statements used are analyzed to determine whether any optimization can be performed. Analysis of SQL statements comprises:

  • Generating table statistics using ANALYZE: The ANALYZE statement collects statistics about the database table content. Statistical results are stored in the system catalog PG_STATISTIC. The execution plan generator uses these statistics to determine which one is the most effective execution plan.
  • Analyzing the execution plan: The EXPLAIN statement displays the execution plan of SQL statements, and the EXPLAIN PERFORMANCE statement displays the execution time of each operator in SQL statements.
  • Identifying the root causes of issues: Identifies possible causes by analyzing the execution plan and perform specific optimization by modifying database-level SQL optimization parameters.
  • Compiling better SQL statements: Compiles better SQL statements in the scenarios, such as cache of intermediate and temporary data for complex queries, result set cache, and result set combination.