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上的技巧来使用原有列上的索引。不过我觉得还不如建立函数索引来的方便。
相关文档:
概述
虚拟专用数据库 (VPD) 提供了角色和视图无法提供的行级访问控制。对于互联网访问,虚拟专用数据库可以确保在线银行的客户只能看到他们自己的帐户。Web 托管公司可以在同一 Oracle 数据库中维护多个公司的数据,但只允许每个公司查看其自身数据。
在企业内部,虚拟数据库可在应用程序部署方面降低拥有成本。可以在数 ......
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. 导入一个或一组指定 ......
1.首先说明一下:
原因是因为我在做这个项目时,被限制得太多,weblogic和oracle的版本不能变,要使用原来的版本。
因此呢。操作起来比较麻烦。而且不能更改原本工程里面的Jar包(它里面存在了oracle14.jar包,但比较旧)
weblogic版本为:8.14
oracle版本为:9i
2.在这里呢,使用hibernate,以流的形式读取到数据里面 ......
Oracle性能调整的误区
http://tech.it168.com/db/o/2006-07-03/200607031305157.shtml
为了提高性能,我们针对Oracle数据库本身提供了的方法或方案进行过不少的尝试,主要包括:
共享服务器模式(MTS)
集群技术(Clustering)RAC
分区
并行 ......
Oracle互换总结
1. 多行换成一行
col1 col2 col1 col2
a 1
a 2 转换后 ......