Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Распределение данных в BUFFER POOL и представление V$BH  [new]
Belal
Member

Откуда:
Сообщений: 39
Решил настроить кэширование данных в KEEP-пуле.
В Database Performance Tuning Guide and Reference по этой теме нашел запрос для определения распределения закэшированных данных:
SELECT o.object_name, COUNT(1) number_of_blocks
FROM DBA_OBJECTS o, V$BH bh
WHERE o.object_id = bh.objd
AND o.owner != ’SYS’
GROUP BY o.object_name
ORDER BY count(1);

Как видно, тут используется представление V$BH.
А потом обнаружил один странный факт - исходя из информации данного представления
один и тотже блок данных содержится в пуле в виде нескольких копий. Это можно проверить запросом:
SELECT distinct count(*)
FROM DBA_OBJECTS o, V$BH bh
WHERE o.object_id = bh.objd
group by bh.OBJD, bh.file#, bh.BLOCK#
having count(*) >1

Причем запрос показывает что есть блоки, закэшированные по шесть раз.

Это представление глючит или Oracle действительно держит в памяти несколько копий блока ?
6 сен 07, 19:16    [4632361]     Ответить | Цитировать Сообщить модератору
 Re: Распределение данных в BUFFER POOL и представление V$BH  [new]
concepts
Member

Откуда: из засады
Сообщений: 279
Belal
Это представление глючит или Oracle действительно держит в памяти несколько копий блока ?

действительно держит
6 сен 07, 19:21    [4632380]     Ответить | Цитировать Сообщить модератору
 Re: Распределение данных в BUFFER POOL и представление V$BH  [new]
Rihard
Member

Откуда: Киев
Сообщений: 366
Consistent Read (CR)
6 сен 07, 19:22    [4632385]     Ответить | Цитировать Сообщить модератору
 Re: Распределение данных в BUFFER POOL и представление V$BH  [new]
Elic
Member

Откуда:
Сообщений: 29976
Belal
или Oracle действительно держит в памяти несколько копий блока ?
Logical I/O: слайд 24
6 сен 07, 19:30    [4632416]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить