oracle bucket 查询,bucket到底是什么?

1. bucket是不是代表了一种等级?

2. 如果bucket不是一种等级,而是存储单元,那么100m的shared pool与300m,他们的bucket是怎么分配的?

3.DB重启后,bucket是如何分布的?

我的理解:

bucket是一种等级,当要分配内存时,会找到最适合的bucket,8i的bucket等级太少,因此很容易将大部分内存请求分至一个等级内,导致搜索延时,造成latch的争用,9i细化了bucket的等级,有效地错开不同大小的内存请求,使搜索加快,觉得shared pool基本无法进行人为干涉调整,只能依靠oralce版本升级时改进算法,但有一点没有明白,当内存请求分配BUCKET后,有时产生了多余的块,这些块是如何处理的

自己做了个试验

重启DB后

select * from dba_objects;

软后观察x$ksmsp的变化

KSMCHSIZ   CT_KSMCHSIZ    B_KSMCHSIZ      B_CT_KSMCHSIZ

----------            -----------                  ----------                    -------------

32                  53                      32                        56

84                  23                      84                        24

96                 521                    96                        542

188               160                    188                       169

240                 47                    240                       48

284                224                   284                       228

304               294                    304                      302

320                41                     320                         42

500               84                      500                         87

540               475                    540                       485

560             1097                    560                      1155

564                25                     564                        26

756                41                      756                       44

2232               91                    2232                       133

4144              102                    4144                      117

为什么会有这么多的块增加?

以上是我的理解,还是觉得有问题,请大家指点一下?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值