oracle 如何捕获 sql
oracle 11g 及其以上得版本中,有如下两种方法可以产生目标 sql 的
sql plan baseline:
。自动捕获。
。手工生成、批量导入(批量导入尤其适用于 oracle 数据库大版本的升
级,它可以确保升级后原有系统所有 sql 得执行计划不会变更)。
我们来看一个自动捕获 sql plan baseline 并据此来稳定执行计划的实
例。
oracle 11g 中 optimizer_capture_sql_plan_baselines 的默认值为
false,optimizer_use_sql_plan_baselines 的默认值为 true:
22:10:16 SQL> show parameter sql_plan
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
optimizer_capture_sql_plan_baselines boolean FALSE
optimizer_use_sql_plan_baselines boolean TRUE
在当前 session 中禁掉 spm 并同时开启自动捕获 sql plan baseline:
22:16:51 SQL> alter session set optimizer_use_sql_plan_baselines=f
alse;
Session altered.
Elapsed: 00:00:00.00
评论