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

【转】ORACLE中Like与Instr性能大比拼

ORACLE中Like与Instr性能大比拼
作者:丹臣 | 【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】
地址:http://rdc.taobao.com/blog/dba/html/246_like_instr_performance.html
t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标。但经过实际测试发现,like的效率与instr函数差别相当大。下面是一些测试结果:
SQL> set timing on
SQL> select count(*) from t where instr(title,’手册’)>0;
COUNT(*)
———-
65881
Elapsed: 00:00:11.04
SQL> select count(*) from t where title like ‘%手册%’;
COUNT(*)
———-
65881
Elapsed: 00:00:31.47
SQL> select count(*) from t where instr(title,’手册’)=0;
COUNT(*)
———-
11554580
Elapsed: 00:00:11.31
SQL> select count(*) from t where title not like ‘%手册%’;
COUNT(*)
———-
11554580
另外,我在另外一个2亿多的表,使用8个并行,使用like查询很久都不出来结果,但使用instr,4分钟即完成查找,性能是相当的好。这些小技巧用好,工作效率提高不少。通过上面的测试说明,ORACLE内建的一些函数,是经过相当程度的优化的。


相关文档:

oracle 移动高水位:

查看表的大小;
select a.blocks,a.bytes,a.bytes/1024/1024 from user_segments a
where a.segment_name='B_M_DZYH_CUST_SIGN_FACT';
首先
create table TEST_1228 as select * from user_tables;
insert into TEST_1228  select * from TEST_1228 ;
insert into TEST_1228  select * from TEST_1228 ;
i ......

oracle online documentation

oracle 9i online documentation:
http://www.oracle.com/pls/db92/db92.docindex?remark=homepage
oracle 10g online documentation:
http://www.oracle.com/pls/db102/homepage
oracle 11g online documentation:
http://www.oracle.com/pls/db111/homepage ......

Oracle用户权限控制

1)、构造实例:
我们已经创建好数据库用户test_user,下边存在test_table表和test_procedure存储过程。我们已经创建好一个空的代理数据库用户agent_user。
2)、登录test_user用户,将test_user下表的select权限和存储过程的excute权限赋给代理用户agent_user。
SQL>GRANT select ON test_table TO agent_user;
SQL ......

oracle %type

1、使用%TYPE
在许多情况下,PL/SQL变量可以用来存储在数据库表中的数据。在这种情况下,变量应该拥有与表列相同的类型。例如,students表的first_name列的类型为VARCHAR2(20),我们可以按照下述方式声明一个变量
DECLARE
v_FirstName VARCHAR2(20);
但是如果first_name列的定义改变了会发生什么(比如说表改变了,first ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号