Oracle数据库11g新特性:自适应游标与SQL计划管理
2008-12-16 13:03:23 来源:WEB开发网之前显示的示例查询可以很好地表现这一点。数据库将基于绑定变量的值使用正确的优化程序方案。您不需要执行任何操作;上述操作将自动执行。
字典视图 V$SQL 已经修改,添加了两列:IS_BIND_SENSITIVE 和 IS_BIND_AWARE.让我们看一看它们的使用方法:
select is_bind_sensitive, is_bind_aware, sql_id, child_number
from v$sql
where sql_text = 'select count(1) from customers where state_code = :state_code and times_purchased > 3'
I I SQL_ID CHILD_NUMBER
- - ------------- ------------
Y Y 7cv5271zx2ttg 0
Y N 7cv5271zx2ttg 1
让我们看一看这些列的含义。Oracle 对游标进行观察,并确定值变化的方式。如果不同的值可能会改变计划,则游标标记为 "Bind-Sensitive",IS_BIND_SENSITIVE 列显示 "Y".在几次执行后,数据库对游标和值有了更多了解,并确定游标是否应根据值的变化来改变计划。如果情况如此,则游标被称为 "Bind-Aware",IS_BIND_AWARE 列显示 "Y".总结:Bind-Sensitive 游标是可能会更改计划的游标,而 Bind-Aware 游标是实际更改计划的游标。
一个新视图 V$SQL_CS_HISTOGRAM 显示了 SQL 语句执行的次数,为每个子游标划分了三个存储区,如下所示:
select * from v$sql_cs_histogram
where sql_id = '7cv5271zx2ttg'
/
ADDRESS HASH_VALUE SQL_ID CHILD_NUMBER BUCKET_ID COUNT
-------- ---------- ------------- ------------ ---------- ----------
45C8218C 2144429871 7cv5271zx2ttg 5 0 0
45C8218C 2144429871 7cv5271zx2ttg 5 1 2
45C8218C 2144429871 7cv5271zx2ttg 5 2 0
45C8218C 2144429871 7cv5271zx2ttg 4 0 8
... and so on ...
45C8218C 2144429871 7cv5271zx2ttg 0 2 0
- ››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修改表的两种方式
更多精彩
赞助商链接