oracle 三种表连接方式

本文介绍 Oracle 数据库中的 SQL 优化技巧,包括表大小查询、并行查询设置、表连接方式的选择以及索引的分类与创建方法。适用于希望提高查询效率的数据库管理员和开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle 小知识 
1.oracle 查看表大小 
SELECT SUM(T.BYTES) / 1024 / 1024 / 1024 
  FROM DBA_SEGMENTS T 
WHERE T.SEGMENT_NAME = 'TT_TSFR_FUZZY_ABNORMAL'; 

2.强制走全表扫描和索引
/*+ FULL(TT_CONVEYANCE_DETAIL_UNLOAD)*/ 强制走全表扫描
/*+ INDEX(t,IDX_BATCHCODE_LOCAL)*/  强制走索引 
3.oracle 并行 
/*+ PARALLEL(R 3) */

4.oracle 三种表连接方式

排序合并连接 USE_MERGE  

应用场景:当结果集已经排过序

select /*+ ordered use_merge(t2)*/count(*)

from test1 t1, test2 t2

where t1.object_id = t2.object_id;

嵌套循环 USE_NL

应用场景:

1.关联中有一个表比较小;

2.被关联表的关联字段上有索引;

select /*+leading(t1) use_nl(t2)*/count(*)

from test1 t1, test2 t2

where t1.object_id = t2.object_id;

t1位驱动表,数据量小 

哈希连接USE_HASH

应用场景:

1.一个大表,一个小表的关联;

2. 表上没有索引;
3. 返回结果集比较大。
select /*+leading(t1) use_hash(t2)*/count(*)
from test1 t1, test2 t2
where t1.object_id = t2.object_id;

t1为驱动表,数据量小 

 

Oracle 索引分类

按存储方法分类

B-树索引

这种索引的叶子节点保存索引键值和指向索引行的ROWID

B-树索引可以用unique限定为唯一索引

create unique index student_idx on student(number) tablespace users;

 

位图索引

与B-树索引不同,位图索引不存储ROWID值,也不存储键值。它是一个索引键条目存储指向多行的指针,即每个索引条目指向多行。

位图索引适合索引基值数少,高度重复,且只读的应用环境使用,所以适合于数据仓库等环境。

create bitmap index student_bitmap_idx on student (s_sex) tablespace users;

 

按功能分类

唯一索引

 一般索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值