Oracle 的视图与索引
有表A(字段A1,A2)和表B(字段B1,B2).
字段A2,B2上都有索引.
A,B 表联查
sql1 这个sql 非常快 2秒的样子
select * from A,B where A.A1=B.B1(+) and A2='值1'
sql2 这个sql 慢到让人无法忍受
select * from A,B where A.A1=B.B1(+) and B2='值1'
外联以后 表B上的索引不起作用了.
如果换成内联 速度很快.
select * from A,B where A.A1=B.B1 and B2='值1'
1.物化视图
普通视图不可以建索引。物化视图可以建索引。
CREATE MATERIALIZED VIEW m_tb REFRESH WITH ROWID as select * from tb;
create index idx_tb on m_tb(col1);
2.用hint语句强制指定优化器类型
select /*+index(A,idx_a1) index(B,idx_b1)*/* from A,B where A.A1=B.B1(+) and B1='值1'
2010-02-16 16:04:51 BY TZC
相关文档:
Oracle
函
数之substr
关键字: substr
substr函数有三个参数,允许你将目标字符串的一部份输出,
第一个参数为目标字符串,
第二个字符串是将要输出的子串的起点,
第三个参数是将要输出的子串的长度。
例子1:
substr('ABCDEFG', 2, 3) ......
--日期转换毫秒
SELECT TO_NUMBER(TO_DATE('2005-03-29 12:30:45', 'YYYY-MM-DD HH24:MI:SS') -
TO_DATE('1970-01-01 8:0:0', 'YYYY-MM-DD HH24:MI:SS')) * 24 * 60 * 60 * 1000
from DUAL;
--毫秒转换日期
SELECT TO_CHAR(1112070645000 / (1000 * 60 * 60 * 24) +
TO_ ......
一、 内存结构
共享池:分为库高速缓存和字典高速缓冲区
库高速缓存,用于存储经过语法分析并且正确的SQL语句,并随时准备执行。
字典高速缓冲区,存储登陆到ORACLE的用户名,及这些用户有哪些数据库对象以及这些数据库对象的位置。
数据缓 ......
过程、函数
create or replace procedure p1
is
empname emp.ename%type;
begin
select ename into empname from emp where empno=7788;
dbms_output.put_line(empname);
end;
SQL> ed
SQL> /
Procedure created
SQL> exec p1;
......