Как увидеть результаты работы команды ALTER SYSTEM FLUSH BUFFER_CACHE?

dbstalker, 21 мая

alter system flush buffer_cache; 

Команда доступная начиная с 10g. Предназначена для «очистки » буферного кеша (в SGA). В 9i для этого имеется недокументированная возможность:

alter session set events = 'immediate trace name flush_cache';

Как увидеть, что делает эта команда? Сейчас приведу небольшой пример, как это можно сделать. ( Благодарность Бурлесону). Не тестируйте на промышленной базе!!!

Выполните update какой-нибудь тестовой таблички. Затем выполните запрос:

select o.OBJECT_TYPE, substr(o.OBJECT_NAME,1,10)
  objname , b.objd , b.status, count(b.objd) from v$bh b,
  dba_objects o where b.objd = o.data_object_id --and  o.owner = 'MY_USER' 
group by o.object_type,  o.object_name,b.objd, b.status ;

В результате вы увидите содержимое вашего буферного кэша и статус буферов. Вот на статус вы и обратите свое пристальное внимание.

А тепер выполняйте

alter system flush buffer_cache;  (для 10 )
или
alter session set events = 'immediate trace name flush_cache'; ( для 9)

а затем снова наш запрос:


select o.OBJECT_TYPE, substr(o.OBJECT_NAME,1,10)
  objname , b.objd , b.status, count(b.objd) from v$bh b,
  dba_objects o where b.objd = o.data_object_id --and  o.owner = 'MY_USER' 
group by o.object_type,  o.object_name,b.objd, b.status ;

Анализируем статус буферов. Заметили, что статус поменялся на «free»?

 

Новый комментарий

Я не спамер: введите суму 4+1



 

От авторов блога

О Блоге - прочитай перед началом.

Задать вопрос и получить ответ - уже решено 94 вопросов

Глоссарий - список терминов и сокращений


 
 

Бизнес форум

Последние темы:

Расписание автобусов
18 июля, 3 ответа
Отдых в августе
17 июля, 4 ответа