Skip to content

SQL Profile and SQL Baseline in Oracle Database

SQL Profile and SQL Baseline are both used to optimize the performance of SQL statements in Oracle databases. However, they work in slightly different ways:

SQL Profile: It is a set of performance-related statistics and hints that can be applied to a specific SQL statement to improve its execution plan. It is generated by the Oracle Optimizer and is based on the statistics and other information available at the time the statement is executed. It contains information about the optimizer’s assumptions about the data distribution, and the optimizer’s transformations of the SQL statement to an execution plan.

SQL Baseline: It is a pre-approved execution plan for a specific SQL statement. It is based on the expected data distribution and other information about the statement’s execution environment. It can be used to ensure that the statement always uses a specific execution plan, regardless of the data distribution or other changes in the environment.

So, a SQL Profile contains information about the optimizer’s assumptions and transformations. A SQL Baseline contains the pre-approved execution plan for a SQL statement.

Please note that SQL Profiles can stop working after some time for a few reasons:

  • Changes in the database environment: If the data distribution or other characteristics of the database change significantly, the assumptions and transformations used in the SQL Profile may no longer be valid. As a result, the SQL Profile may no longer improve the performance of the statement.
  • Changes in the SQL statement: If the SQL statement is modified, the SQL Profile may no longer be applicable. For example, if a new join condition is added or a new index is created, the SQL Profile may not be able to optimize the new version of the statement.
  • SQL Profile gets invalidated: SQL profiles can be invalidated by the optimizer itself when the optimizer finds a better execution plan than the one suggested by the profile.
  • Gathering new statistics: If new statistics are gathered on the tables or indexes used by the statement, the optimizer may be able to find a better execution plan without the need for a SQL Profile.
  • Upgrading the database software: Upgrading the database software can also cause SQL Profiles to stop working, as the optimizer’s assumptions and transformations may change between versions.

For a similar reason as above SQL Baseline can also stop working.

Brijesh Gogia
Leave a Reply