Oracle数据库11g新特性:自适应游标与SQL计划管理
2008-12-16 13:03:23 来源:WEB开发网在 Oracle 数据库 11g 中,当一个已经计算好的优化程序计划由于底层因素的更改而需要更新时,新计划不会立即实施。Oracle 会对这个新计划进行评估。仅当它比原有计划更有效时,Oracle 才会实施新计划。此外,还可以使用工具和接口来查看为每个查询计算的计划的历史,以及这些计划的对比情况。
当 Oracle 将一个语句确定为多次执行或“可重复的”语句,声明周期开始。一旦确定了一个可重复语句,数据库即会捕获它的计划,并将该计划作为 SQL 计划基准线存储在数据库一个称为 SQL 管理库 (SMB) 的逻辑结构中。当出于任何原因为该查询计算新计划时,新计划也存储在 SMB 中。因此,SMB 用于存储查询的每个计划、计划的生成方式等等。
计划不会自动存储在 SMB 中。如果上述情况属实,SMB 将存储每类查询的所有计划,并将变得十分庞大。因此,您可以并且应该控制 SMB 存储的查询的数量。执行该操作有两种方法:自动为 SMB 中的所有可重复查询设定基准线,或手动加载应设定基准线的查询
让我们先看一个简单的示例:通过将数据库参数 optimizer_capture_sql_plan_baselines(默认值为 FALSE)的值设置为 TRUE,您可以使 SQL 计划管理特性自动捕获所有可重复查询的 SQL 计划基准线。很幸运,这是一个动态参数。
SQL> alter system optimizer_capture_sql_plan_baselines = true;
该语句执行后,所有可重复语句的执行计划都作为 SQL 计划基准线存储在 SMB 中。SQL 计划基准线存储在名为 DBA_SQL_PLAN_BASELINES 的视图中。您也可以在 Enterprise Manager 中看到这些内容。要检查设定了基准线的计划,请打开 EM 并单击 "Server" 选项卡,如下图所示:
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接