易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle函数索引小结

函数索引的概念:
基于函数的索引也是8i以来的新产物,它有索引计算列的能力,它易于使用并且提供计算好的值,在不修改应用程序的逻辑上提高了查询性能。使用基于函数的索引有几个先决条件:
(1)
必须拥有QUERY REWRITE(本模式下)或GLOBAL QUERY REWRITE(其他模式下)权限。
(2)
必须使用基于成本的优化器,基于规则的优化器将被忽略。
(3)
必须设置以下两个系统参数:
QUERY_REWRITE_ENABLED=TRUE
QUERY_REWRITE_INTEGRITY=TRUSTED
可以通过alter system set,alter session set在系统级或线程级设置,也可以通过在init.ora添加实现。
这里举一个基于函数的索引的例子:
函数索引建立及数据准备:
SQL> create index test.ind_fun on test.testindex(upper(a));
索引已创建。
SQL> insert into testindex values('a',2);
已创建 1 行。
SQL> commit;
提交完成。
强制使用基于规则的优化器,所以不会使用函数索引:
SQL> select /*+ RULE*/*  from test.testindex where upper(a)='A';
A       B
-- ----------
a       2
Execution Plan
----------------------------------------------------------
0  SELECT STATEMENT Optimizer=HINT: RULE
1    0   TABLE ACCESS (FULL) OF 'TESTINDEX'
(优化器选择了全表扫描)
--------------------------------------------------------------------
使用函数索引:
SQL> select *  from test.testindex where upper(a)='A';
A       B
-- ----------
a       2
Execution Plan
----------------------------------------------------------
0  SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=1 Bytes=5)
1    0   TABLE ACCESS (BY INDEX ROWID) OF 'TESTINDEX' (Cost=2 Card=1 Bytes=5)
2    1     INDEX (RANGE SCAN) OF 'IND_FUN' (NON-UNIQUE) (Cost=1 Card=1)
(使用了ind_fun索引)
此处有一种方案,不使用函数索引,通过sql上的技巧来使用原有列上的索引。不过我觉得还不如建立函数索引来的方便。


相关文档:

oracle中常用函数大全

1、数值型常用函数
 
 函数  返回值            样例           显示
ceil(n) 大于或等于数值n的最小整数  select ceil(10.6) from dual; 11
floor(n) 小于等于数值n的最大整数  select ceil(10.6) from dual; 10
mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2
p ......

Windows7环境下如何成功安装Oracle数据库

    随着微软新一代操作系统 Windows7 的正式发行,使用 Windows7  的朋友也越来越多,很多人在 Windows7 环境下安装 Oracle 或多或少遇到了一些问题,有的甚至发出“Windows7无法安装Oracle”的感慨。今天笔者结合图文和大家分享一下在Windows7环境下如何成功安装Oracle数据库。
  &n ......

修改oracle的web服务器端口

   在使用tomcat时,如果本机装载了oracle,那么是无法启动的,因为8080端口已被占用了。当然可以通过修改 server.mxl的端口号使tomcat的端口不是8080,我们还可以修改oracle的web服务器的端口,步骤:
1),打开oracle的sql命令输入窗口
2),连接到Oracle服务器,用命令conn sys as SYSDBA
3),用名令:ca ......

ORACLE常用SQL优化hint语句

PowerBuilder取得巨大成就的原因就是有功能强大和灵活多变的Datawindow对象,本人用PowerBuilder开发过一段时间后,总结出一些技巧,以供广大的PB开发者借鉴使用。
1、 如何创建一个具有逐渐递增求和功能的报表,如下形式: Running Total列,我们可使用计算列:CumulativeSum(Quantity for all),即可达到逐渐递增求和 ......

【转】Oracle性能调整的误区

Oracle性能调整的误区
http://tech.it168.com/db/o/2006-07-03/200607031305157.shtml
为了提高性能,我们针对Oracle数据库本身提供了的方法或方案进行过不少的尝试,主要包括:
    共享服务器模式(MTS)
    集群技术(Clustering)RAC
    分区
    并行 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号