PS:每个分区只有不到10行,这里有一个重要的参数Kept,1在内存中,0在磁盘
*** (continued) HASH JOIN BUILD HASH TABLE (PHASE 1) ***
PS:hash join的第一阶段,但是要观察更多的阶段,需提高trace的level,这里略过
Revised number of hash buckets (after flushing): 50
Allocating new hash table.
*** (continued) HASH JOIN BUILD HASH TABLE (PHASE 1) ***
Requested size of hash table: 16
Actual size of hash table: 16
Number of buckets: 128
Match bit vector allocated: FALSE
kxhfResize(enter): resize to 14 slots (numAlloc=8, max=12)
kxhfResize(exit): resized to 14 slots (numAlloc=8, max=14)
freeze work area size to: 2359K (14 slots)
*** (continued) HASH JOIN BUILD HASH TABLE (PHASE 1) ***
Total number of rows (may have changed): 50
Number of in-memory partitions (may have changed): 8
Final number of hash buckets: 128
Size (in bytes) of hash table: 1024
kxhfIterate(end_iterate): numAlloc=8, maxSlots=14
*** (continued) HASH JOIN BUILD HASH TABLE (PHASE 1) ***
### Hash table ###
# NOTE: The calculated number of rows in non-empty buckets may be smaller
# than the true number.
Number of buckets with 0 rows: 86
Number of buckets with 1 rows: 37
Number of buckets with 2 rows: 5
Number of buckets with 3 rows: 0
PS:桶里面的行数,最大的桶也只有2行,理论上,桶里面的行数越少,性能越佳。
Number of buckets with 4 rows: 0
Number of buckets with 5 rows: 0
Number of buckets with 6 rows: 0
Number of buckets with 7 rows: 0
Number of buckets with 8 rows: 0
Number of buckets with 9 rows: 0
Number of buckets with between 10 and 19 rows: 0
Number of buckets with between 20 and 29 rows: 0
Number of buckets with between 30 and 39 rows: 0
Number of buckets with between 40 and 49 rows: 0
Number of buckets with between 50 and 59 rows: 0
Number of buckets with between 60 and 69 rows: 0
Number of buckets with between 70 and 79 rows: 0
Nmber of buckets with between 80 and 89 rows: 0
Number of buckets with between 90 and 99 rows: 0
Number of buckets with 100 or more rows: 0
### Hash table overall statistics ###
Total buckets: 128 Empty buckets: 86 Non-empty buckets: 42
PS:创建了128个桶,Oracle 7开始的计算公式
Bucket数=0.8*hash_area_size/(hash_multiblock_io_count*db_block_size)
但是不准确,估计10g发生了变化。
Total number of rows: 50
Maximum number of rows in a bucket: 2
Average number of rows in non-empty buckets: 1.190476
小表500行时候的trace分析
Original hash-area size: 3925453
Memory for slot table: 2826240
。。。
Hash-join fanout: 8
Number of partitions: 8
。。。
### Partition Distribution ###
Partition:0 rows:52 clusters:1 slots:1 kept=1
Partition:1 rows:63 clusters:1 slots:1 kept=1
Partition:2 rows:55 clusters:1 slots:1 kept=1
Partition:3 rows:74 clusters:1 slots:1 kept=1
Partition:4 rows:66 clusters:1 slots:1 kept=1
Partition:5 rows:66 clusters:1 slots:1 kept=1
Partition:6 rows:54 clusters:1 slots:1 kept=1
Partition:7 rows:70 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次浏览)



