当在查询中使用了function,返回值会受到影响。

比如:

select count(*) from customers where lower(cust_state_province)='ca';

优化器只知道原先列上的统计信息,而不知道被lower函数转后以后的统计信息,列的选择性会受到影响,但是优化器去无法得知。 对于sql语句谓词中的列使用了函数以后,优化器会简单的认为该列的选择性为1%。这样就会导致执行计划发生改变。

在oracle 10g中,只会针对几种列的表达式进行Expression Statistics收集。如表达式要能保持数据的分布特征和列的分布特征相同,比如to_number()。

在oracle 11g中,数据库使用Expression Statistics,包括用户定义的函数、基于索引的函数。该新特性依赖虚拟列来创建表达式统计信息。

创建Expression Statistics

SQL> select dbms_stats.create_extended_stats(null,'customers','(lower(cust_state_province))') from dual;DBMS_STATS.CREATE_EXTENDED_STATS(NULL,'CUSTOMERS','(LOWER(CUST_STATE_PROVINCE))'
--------------------------------------------------------------------------------
SYS_STUBPHJSBRKOIK9O2YV3W8HOUE或者
SQL> exec dbms_stats.gather_table_stats(null,'customers',method_opt => 'for all columns size skewonly for columns (lower(cust_state_province)) skewonly');

查看

SQL> select extension_name,extension from dba_stat_extensions where table_name='CUSTOMERS';EXTENSION_NAME                 EXTENSION
------------------------------ --------------------------------------------------------------------------------
SYS_STUBPHJSBRKOIK9O2YV3W8HOUE (LOWER("CUST_STATE_PROVINCE"))

删除

SQL> exec dbms_stats.drop_extended_stats('sh','customers','(lower(cust_state_province))');

11G新特性 -- Expression Statistics相关推荐

  1. Oracle 11g新特性之--虚拟列(Virtual Column)

    Oracle 11g新特性之--虚拟列(Virtual Column) Oracle 11G虚拟列Virtual Column介绍 在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时, ...

  2. oracle+字段+virtual,Oracle 11g新特性之--虚拟列(Virtual Column)

    Oracle 11g新特性之--虚拟列(Virtual Column) Oracle 11G虚拟列Virtual Column介绍 在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时, ...

  3. ORACLE 11g新特性中文版

    Oracle 11g 新特性 摘自ITPUB的love_zz的帖子 http://www.itpub.net/712880.html Oracle 11g 现在已经开始进行beta测试,预计在2007 ...

  4. Oracle 11g新特性之缓存与连接池

    Oracle 11g新特性之缓存与连接池 上一篇 /下一篇  2008-03-26 16:03:19 / 个人分类:Oracle 数据库 11g面向 DBA 和开发人员的重要新特性 查看( 414 ) ...

  5. Oracle 11g 新特性 -- Transparent Data Encryption (透明数据加密TDE) 增强 说明

    一.TransparentData Encryption (TDE:透明数据加密) 说明 Orace TDE 是Orcle 10R2中的一个新特性,其可以用来加密数据文件里的数据,保护从操作系统层面上 ...

  6. Oracle 11g新特性之 - 使用RMAN复制数据库

    Oracle 11g新特性之 - 使用RMAN复制数据库 Oracle 11g新特性之 - 使用RMAN复制数据库 - 1 Oracle 11g新特性之 - 使用RMAN复制数据库 - 2 Oracl ...

  7. Slide:11g新特性-在线实施补丁online patching

    11g新特性 在线实施补丁online patching View more documents from Maclean Liu 转载于:https://blog.51cto.com/maclean ...

  8. Oracle 11g新特性之--只读表(read only table)

    Oracle 11g新特性之--只读表(read only table)       Oracle11g推出了一个新的特性,可以将table置于read only状态,处于该状态的table的不能执行 ...

  9. oracle result_cache_max_size,oracle database 11g新特性之设置result cache-Oracle

    oracle database 11g新特性之设置result  cache oracle database 11g 新特性 之设置 result  cache 如果系统以前没有使用过result c ...

  10. Oracle入门(三B)之11G新特性 SYSASM 角色用来管理ASM

    转载自 oracle 11G新特性--SYSASM 角色--用来管理ASM SYSASM 角色 自动存储管理 (ASM) 是在 Oracle 数据库 10g 中引入的,它在某种程度上打破了 DBA 和 ...

最新文章

  1. 在Delphi程序中操作注册表
  2. verilog编译指令
  3. mysql日常错误信息解决方法:InnoDB: and force InnoDB to continue crash recovery here.
  4. UWP AppBarButton Icon 图标样式集合
  5. 031_自己对ArrayList中Iterator的实现
  6. JZOJ__Day 2:【普及模拟】串
  7. 线段树之延时标记(区间修改)及lazy思想
  8. String与string的区别
  9. java 蓝桥杯算法训练 s01串(题解)
  10. PowerBI Report Server 自定义视图无法显示故障解决
  11. Vmware Linux设置固定IP
  12. NYOJ2-括号配对问题
  13. 北大中文核心期刊目录(2004年版)全文
  14. vscode通过ssh远程连接服务器
  15. 开弓没有回头箭,遭遇跳槽四大后悔事件,怎么办?
  16. ip地址:string和int互转方案
  17. WinPE的制作 - 进WinPE后自动运行程序
  18. USACO4.3.2——质数方阵暴力解法
  19. Django框架学习--4--分布式路由ORM基础
  20. linux c实现键盘模拟,C++模拟键盘按键的实例

热门文章

  1. paip.环境配置整合 ibatis mybatis proxool
  2. paip.网页右键复制菜单限制解除解决方案
  3. 循道 | 富达投资的技术控为何摇身变成资管掌门人
  4. (转)财新特稿丨风口浪尖上,李笑来谈ICO
  5. 阿里云原生“因云而生”心智大图重磅发布
  6. CCF为何能吸引6.8万付费会员?
  7. Linux基金会发布开源Hypervisor项目ACRN支持物联网设备开发
  8. 【语音处理】基于matlab GUI汉宁窗FIR陷波滤波器语音信号加噪去噪【含Matlab源码 1711期】
  9. 【数字信号处理】基于matlab数字信号同步压缩变换【含Matlab源码 1535期】
  10. 【故障分析】基于matlab GUI鼠笼式异步电机转子断条故障诊断【含Matlab源码 1089期】