SELECT * FROM vendition a,customer b WHERE a.customerid = b.customerid;
SELECT * FROM vendition a,customer_small b WHERE a.customerid = b.customerid;
SELECT * FROM vendition a,customer_pity b WHERE a.customerid = b.customerid;
小表50行时候的trace分析:
*** 2008-03-23 18:17:49.467
*** SESSION ID:(773.23969) 2008-03-23 18:17:49.467
kxhfInit(): enter
kxhfInit(): exit
*** RowSrcId: 1 HASH JOIN STATISTICS (INITIALIZATION) ***
Join Type: INNER join
Original hash-area size: 3883510
PS:hash area的大小,大约380k,本例中最大的表也不过250块左右,所以内存完全可以完全装载
Memory for slot table: 2826240
Calculated overhead for partitions and row/slot managers: 1057270
Hash-join fanout: 8
Number of partitions: 8
PS:hash 表数据连一个块都没装满,Oracle仍然对数据进行了分区,这里和以前在一些文档上看到的,当内存不足时才会对数据分区的说法,发生了变化。
Number of slots: 23
Multiblock IO: 15
Block size(KB): 8
Cluster (slot) size(KB): 120
PS:分区中全部行占有的cluster的size
Minimum number of bytes per block: 8160
Bit vector memory allocation(KB): 128
Per partition bit vector length(KB): 16
Maximum possible row length: 270
Estimated build size (KB): 0
Estimated Build Row Length (includes overhead): 45
# Immutable Flags:
Not BUFFER(execution) output of the join for PQ
Evaluate Left Input Row Vector
Evaluate Right Input Row Vector
# Mutable Flags:
IO sync
kxhfSetPhase: phase=BUILD
kxhfAddChunk: add chunk 0 (sz=32) to slot table
kxhfAddChunk: chunk 0 (lbs=0x2a97825c38, slotTab=0x2a97825e00) successfuly added
kxhfSetPhase: phase=PROBE_1
qerhjFetch: max build row length (mbl=44)
*** RowSrcId: 1 END OF HASH JOIN BUILD (PHASE 1) ***
Revised row length: 45
Revised build size: 2KB
kxhfResize(enter): resize to 12 slots (numAlloc=8, max=23)
kxhfResize(exit): resized to 12 slots (numAlloc=8, max=12)
Slot table resized: old=23 wanted=12 got=12 unload=0
*** RowSrcId: 1 HASH JOIN BUILD HASH TABLE (PHASE 1) ***
Total number of partitions: 8
Number of partitions which could fit in memory: 8
Number of partitions left in memory: 8
Total number of slots in in-memory partitions: 8
Total number of rows in in-memory partitions: 50
(used as preliminary number of buckets in hash table)
Estimated max # of build rows that can fit in avail memory: 66960
### Partition Distribution ###
Partition:0 rows:5 clusters:1 slots:1 kept=1
Partition:1 rows:6 clusters:1 slots:1 kept=1
Partition:2 rows:4 clusters:1 slots:1 kept=1
Partition:3 rows:9 clusters:1 slots:1 kept=1
Partition:4 rows:5 clusters:1 slots:1 kept=1
Partition:5 rows:9 clusters:1 slots:1 kept=1
Partition:6 rows:4 clusters:1 slots:1 kept=1
Partition:7 rows:8 clusters:1 slots:1 kept=1
相关专题
- 数据库专栏 (5296篇文章)
- 数据库处理专题 (9002篇文章)
- 城域网专题 (8008篇文章)
- 数据库安全技术专题 (13517篇文章)
- 数据库安装与卸载 (10792篇文章)
- Oracle 10g基础应用 (4629篇文章)
- Linux数据库宝典 (13792篇文章)
- 数据库相关文章 (5296篇文章)
- 数据库体系架构 (1166篇文章)
- Oracle数据库中关键字 (67次浏览)
- 实例讲解清除Oracle 10g RAC CRS的方法 (48次浏览)
- Data Guard学习物理standby高级管理 (47次浏览)
- 深入讲解“database link”的设置和使用 (31次浏览)
- 甲骨文:从手机功能变化看数据库性能扩展 (27次浏览)
- Windows环境中同时安装Oracle9i 10g和11g (25次浏览)
- Oralce定时执行存储过程任务的设置步骤 (24次浏览)
- 实例讲解Oracle监听口令及监听器安全 (23次浏览)
- 测量磁盘I/O (21次浏览)
- 初学者应该如何理解Oracle的架构知识 (20次浏览)



