实施SQL配置文件意味着将其永久存储在数据库中。
实施配置文件与接受配置文件相同。在生成计划时,必须先接受概要文件,然后优化器才能将其用作输入。
本节包含以下主题:
- 关于SQL Profile实施
作为经验法则,请实施SQL Tuning Advisor建议的SQL Profile。 - 实施SQL概要文件
要实施SQL概要文件,请使用以下DBMS_SQLTUNE.ACCEPT_SQL_PROFILE过程。
26.2.1关于SQL配置文件的实现
根据经验,实施SQL Tuning Advisor建议的SQL配置文件。
如果数据库建议同时使用索引和SQL概要文件,则请同时使用两者或仅使用SQL概要文件。如果创建索引,则优化器可能需要配置文件来选择新索引。
在某些情况下,除了更好的并行计划之外,SQL Tuning Advisor可能还会发现改进的串行计划。在这种情况下,顾问建议同时使用标准和并行SQL配置文件,从而使您可以为语句选择最佳的串行计划和最佳的并行计划。仅在响应时间的增加值得减少吞吐量的情况下,才执行并行计划。
要实现SQL配置文件,请执行以下DBMS_SQLTUNE.ACCEPT_SQL_PROFILE过程。一些重要的参数如下:
profile_typeREGULAR_PROFILE对于不更改并行执行PX_PROFLE的SQL概要文件,或对于更改为并行执行的SQL概要文件,将此参数设置为。force_match此参数控制语句匹配。通常,可接受的SQL配置文件通过使用散列函数生成的SQL签名与SQL语句关联。此哈希函数将SQL语句更改为大写并在生成签名之前删除所有多余的空格。因此,相同的SQL配置文件适用于所有SQL语句,其中唯一的区别是大小写和空格。
通过设置
force_match为true,在WHERE子句中的文字值已被绑定变量替换之后,SQL配置文件还针对所有具有相同文本的SQL语句。对于仅使用文字值的应用程序,此设置可能很有用,因为它使具有文字值仅不同的文本的SQL能够共享SQL配置文件。如果文字值和绑定变量都在SQL文本中,或者如果force_match将其设置为false(默认值),则WHERE子句中的文字值不会被绑定变量替换。
也可以看看:
《 Oracle数据库PL / SQL软件包和类型参考》以获取有关该ACCEPT_SQL_PROFILE过程的 信息
26.2.2实施SQL配置文件
要实现SQL配置文件,请使用以下DBMS_SQLTUNE.ACCEPT_SQL_PROFILE过程。
假设条件
本教程假定以下内容:
- SQL Tuning Advisor任务
STA_SPECIFIC_EMP_TASK包括创建SQL配置文件的建议。 - SQL配置文件的名称为
my_sql_profile。 - PL / SQL块接受使用并行执行(
profile_type)的配置文件。 - 轮廓使用力匹配。
要实现SQL配置文件:
- 在SQL * Plus或SQL Developer中,以具有必要特权的用户身份登录数据库。
- 执行
ACCEPT_SQL_PROFILE功能。例如,执行以下PL / SQL:
DECLARE my_sqlprofile_name VARCHAR2(30); BEGIN my_sqlprofile_name := DBMS_SQLTUNE.ACCEPT_SQL_PROFILE ( task_name => 'STA_SPECIFIC_EMP_TASK' , name => 'my_sql_profile' , profile_type => DBMS_SQLTUNE.PX_PROFILE , force_match => true ); END; /
也可以看看:
Oracle Database PL / SQL软件包和类型参考以了解该DBMS_SQLTUNE.ACCEPT_SQL_PROFILE过程




