[Oracle] 分区探索(1) - 分区剪枝

本文详细介绍了Oracle数据库中的分区剪枝技术,包括静态和动态两种类型。静态分区剪枝在解析阶段就能确定扫描的分区,而动态分区剪枝则在运行时根据条件确定。静态剪枝的执行计划会明确显示扫描的分区范围,而动态剪枝则显示为KEY,表示动态计算。此外,数据类型转换和在分区键上使用函数可能会影响分区剪枝的效果,需要注意这些因素以保持最佳性能。
摘要由CSDN通过智能技术生成
[Oracle] 探讨分区(1)- 分区剪枝
[Oracle] 探讨分区(2)- 分区索引
[Oracle] 探讨分区(3)- 分区与性能

分区剪枝


分区剪枝是指对于分区表或分区索引来说,优化器可以自动从FROM和WHERE字句里根据分区键提取出需要扫描的分区,从而避免全表扫描,减少扫描的数据块,提高性能。分区剪枝分为静态和动态,静态分区剪枝发生在编译阶段,动态分区剪枝发生在执行阶段,下面我们分别来看看这两种分区剪枝执行计划的异同点。


静态分区剪枝

静态分区剪枝在解析阶段就知道需要扫描多少个分区,因此执行计划里的PSTART和PSTOP明确显示扫描的起止分区数,例如:

SQL> explain plan for select * from sales where time_id = to_date('01-jan-2001', 'dd-mon-yyyy');
Explained.

SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------
Plan hash value: 3971874201
----------------------------------------------------------------------------------------------
| Id | Operation              | Name  | Rows | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
----------------------------------------------------------------------------------------------
|  0 | SELECT STATEMENT       |       | 673  | 19517 | 27      (8)| 00:00:01 |       |       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值