易截截图软件、单文件、免安装、纯绿色、仅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的web服务器端口

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

Oracle用户管理

1.创建用户: 需要DBA的权限,语句 create user 用户名 identified by 密码。 eg. create user joe identified by m123; 2.更改密码: passw 用户名 3.删除用户: 需要DBA的权限,如果用其他用户去删除则需要具有drop user的权限。 drop user 用户名 [cascade]; (如果用户已经创建表了,则用c ......

Oracle IMP 详解

Oracle的导入实用程序(Import utility)允许从数据库提取数据,并且将数据写入操作系统文件。imp使用的基本格式:imp[username[/password[@service]]],以下例举imp常用用法。
1. 获取帮助
imp help=y
2. 导入一个完整数据库
imp system/manager file=bible_db log=dible_db full=y ignore=y
3. 导入一个或一组指定 ......

在weblogic8.14里面操作oracle大字段

1.首先说明一下:
原因是因为我在做这个项目时,被限制得太多,weblogic和oracle的版本不能变,要使用原来的版本。
因此呢。操作起来比较麻烦。而且不能更改原本工程里面的Jar包(它里面存在了oracle14.jar包,但比较旧)
weblogic版本为:8.14
oracle版本为:9i
2.在这里呢,使用hibernate,以流的形式读取到数据里面 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号