ORACLE
表连接方式分析及常见用法
摘要
:
针对在数据仓库环境下
,
由于超大数据量的处理而产生的效率问题,本文深入分
析了
ORACLE
表的几种连接方式、特点、适用范围
,
以及对于
如何使用和优化做了详细的探讨。
关键字: 数据仓库
ORACLE
表连接
一 引言
数据仓库技术是目
前已知的比较成熟和被广泛采用的解决方案,用于整和电信运营企业内部所有分散的原始业务数据,并通过便捷有效的数据访问手段,可以支持企业内部不同部门,
不同需求,不同层次的用户随时获得自己所需的信息。数据仓库系统需要能够及时地追踪和分析大量的历史数据,并能够及时做出分析和预测,因此实时性是一个非
常重要的指标。ORACLE由于可靠性、高性能等方面的特点,在电信行业大部分的数据仓库系统中担当了后台数据库的角色。由于电信行业的特点,处理的数据
量十分庞大,处理的时间长。尤其是对于大表之间的关联操作,
有的大表
的记录数达到数亿条,处理时间更是漫长,这成为影响数据库运行效率的主要因素。因
此,对于数据库的性能优化相当重要。性能优化是个很大的课题,需要综合考虑,从服务器、磁盘、网络、
ORACLE
实
例、
ORACLE SQL
等多方面着手 ......
ORACLE实例 = 进程 + 进程所使用的内存(SGA)
实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态!
数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件
数据库是永久的,是一个文件的集合。
ORACLE实例和数据库之间的关系
1.
临时性和永久性
2.
实例可以在没有数据文件的情况下单独启动 startup nomount , 通常没什么意义
3.
一个实例在其生存期内只能装载(alter database mount)和打开(alter database open)一个数据库
4.
一个数据库可被许多实例同时装载和打开(即RAC),RAC环境中实例的作用能够得到充分的体现!
下面对实例和数据库做详细的诠释:
在Oracle领域中有两个词很容易混淆,这就是“实例”(instance)和“数据库”(database)。作为Oracle术语,这两个词的定义如下:
q
数据库(database):物理操作系统文件或磁盘(disk)的集合。使用Oracle 10g的自动存储管理(Automatic Storage Management,ASM)或RAW分区时,数据库可能不作为操作系统中单独的文件,但定义仍然不变。
q
实例(instance):一组Oracle后台进程/线程以及一个共享内存区,这些内存由同一个计算机上运行的线程/进 ......
/*
函数名称:oracle 字符按位或函数
参数约束:p1与p2的长度必须一致
*/
create or replace function F_BITOR(p1 in string, p2 in string) return varchar2 is
Result varchar2(16);
t_p number(3);
r_p varchar2(16);
p_p number(3);
c_1 char(1);
c_2 char(1);
begin
t_p := length(p1);
p_p := 0;
loop
--退出条件
EXIT WHEN p_p = t_p;
--按位取值
c_1 := SUBSTR(p1,p_p,1);
c_2 := SUBSTR(p2,p_p,1);
--比较后赋值
if c_1 > c_2 then
r_p := r_p || to_char(c_1);
elsif c_1 < c_2 then
&nbs ......
Oracle lessons list:
Title Course Code
Oracle Database 11g: 2 Day DBA (Hosted) D50309GC90
Oracle Database 11g: 2 Day DBA Ed 1 &n ......
--创建表空间
create tablespace testSP
datafile 'E:\COMPANY\rbtsql\testSP.dbf'
size 100M AutoExtend On Next 10M Maxsize 2048M
--创建用户
create user janely identified by wawa
default tablespace testSP--默认表空间是 system
temporary tablespace temp--保存临时对象所使用的空间表
--赋权限
grant create session to janely
grant dba to janely
commit;
--修改用户密码(先连接上去)
alter user janely identified by ren;
--删除用户
Drop user janely
--查看所有用户:
select * from dba_users;
select * from all_users;
select * from user_users;
/*
ORACLE中数据字典视图分为3大类,
用前缀区别,分别为:USER,ALL 和 DBA,许多数据字典视图包含相似的信息。
USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息
ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息
DBA_*:有关整个数据库中对象的信息
*/
......
create table tree_table
(
id number,
pId number,
orderNumber number,
name varchar2(255)
)
select tt.*
from tree_table tt
start with tt.pId = 0
connect by prior tt.id = ttd.pId
order siblings by orderNumber ......