|
|
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
как определить (на заданном отрезке времени X) db-обьекты (таблицы, индексы) из-за которых происходит максимальное ожидание IO? (и которых следовало бы, _ВОЗМОЖНО_(!) "pin-овать" в KeepBuffer?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 15:30 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
DBAshnik"pin-овать" в KeepBuffer?)Что это такое (точнее, что ты под этим подразумеваешь), и какой ты ожидаешь выигрыш? PS. Если че, pin (закрепление в библиотечном кэше описания объекта) имеет мало отношения к различным буферным кэшам Более того -- для индексов вообще монопенесуально (если это не IFFS) в каком кэше они помещаются, можно только говорить про отдельную защелку CBC, но расчитать это малореально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 15:36 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 15:42 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
P.S. Ask Tom. KEEP Buffer Pool Based on your misunderstanding of what the keep pool is/does, I would really recommend you do not use it. It does not do what you imagine. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 15:45 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
Viewer Ask Tom. KEEP Buffer Pool У тебя сегодня какое-то нездоровое увлечение "дядюшкой Томом", но не самыми удачными его (или, что еще хуже, его последователями) статьями Если человек может читать по-английски, то он прочтет более продвинутую информацию на эту тему у того же Jonathan Lewis (и иже с ним) А если нет -- ну какой смысл давать ссылку на англоязычный сайт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 15:55 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
Ок, про дядюшку пометил... А по поводу англоязычных сайтов - это это уже перегиб. Дока, металинк, масса FAQ - найти на на родном значительно сложнее... с грехом пополам и онлайн-переводчиком наковырять полезное болезные в состоянии... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 16:17 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
Дык об чем и речь -- нужно читать англоязычные (если можешь) Но есть подозрение, что народ просто ленится (да, я и сам такой), поэтому если и есть смысл давать ссылки тем, у кого каша в голове, то, наверное таки на русскоязычных -- англоязычных они либо не читаю, либо не понимают (да я сам такой же, просто никому не рассказываю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 16:23 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
по ссылке Тома: автор"The goal here was to give the DBA the ability to segregate segments to hot, warm, and do not care to cache areas." Для меня вопрос того, что имеет смысл закинуть _известные_ нам(!) обьекты в DB_KEEP_CACHE давным-давно уже не стоит. Так как давным-давно я знаю _на пракитке_ что это ускоряет работу желаемого функционала. (что бы там Том не писал, он ведь тоже, бывает, ошибается!) И можно я не буду обсуждать этот вопрос тут больше, ну пожалуйста?! ;-) Мой вопрос был всего-навсего: как нам найти другие "hot", (кроме известных) про которых мы ещё не знаем что они "hot"! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 16:51 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
DBAshnik Мой вопрос был всего-навсего: как нам найти другие "hot", (кроме известных) про которых мы ещё не знаем что они "hot"! P.S. и сие нужно на 11gR2! (EE, но без юзания дорогих платных пакетов типа Diagnostic Pack) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 16:53 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
Но ведь вопрос изначально звучал именно как звучал Раз ты понимаешь, что "имеет смысл закинуть _известные_ нам(!) обьекты в DB_KEEP_CACHE" то ты, наверняка понимаешь, чем отличается поведение горячих/холодных/частоиспользуемых блоков в каждой из цепочек -- CACHE / KEEP_CACHE / RECYCLE_CACHE Значит и понимаешь как их искать -- например "горячие" блоки разделяющие CBC-защелку с другими сегментами Или сегменты (особенно при одноблочном чтении -- по индексу), которые частенько приходится подкачивать с диска И, подождите, это не те, случаем, которые через direct path read читаются? Дык может разница в аттрибутах CACHE и BUFER_POOL ? А может там еще и LOB-ы закрались? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 17:06 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров Значит и понимаешь как их искать в том то и дело что нет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 17:47 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров И, подождите, это не те, случаем, которые через direct path read читаются? нету у нас direct path read! Вячеслав ЛюбомудровА может там еще и LOB-ы закрались? и лоб-ов у нас крайне мало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2018, 17:50 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
DBAshnikкак определить (на заданном отрезке времени X) db-обьекты (таблицы, индексы) из-за которых происходит максимальное ожидание IO? (и которых следовало бы, _ВОЗМОЖНО_(!) "pin-овать" в KeepBuffer?) Подход просто по признаку "максимальное ожидание IO" для кандидатов в keep buffer не верен. У вас просто могут быть неоптимизированные запросы, или запросы, которые выполняются редко... скорее они кандидаты в recycle buffer, а не в keep... Нужно хорошо знать саму логику использования бд, знать ее ядро, таблицы и индексы, которые являются базовыми по схеме, т.е. объекты, вокруг которых и на основе которых крутятся большинство транзакционных и много прочих запросов. И если для таких базовых таблиц-индексов по какой-то причине (невозможность уйти от fts/ffs, или их желательное использование и т.д) просматривается большое кол-во io, тогда да, они МОГУТ быть (хотя не обязательно) кандидатами в keep . Ну и в помощь запрос на периодическое просматривание sga на предмет постоянно сидящих там в fts/ffs объектов (запрос для 9i, уж не обезсудьте) set echo off; set feedback on set pages 999; column nbr_FTS format 999,999 column num_rows format 999,999,999 column blocks format 999,999 column owner format a14; column name format a24; column ch format a1; column object_owner heading "Owner" format a12; column ct heading "# of SQL selects" format 999,999; select object_owner, count(*) ct from v$sql_plan where object_owner is not null group by object_owner order by ct desc ; set heading off; set feedback off; set heading on; set feedback on; ttitle 'full table scans and counts| |The "K" indicates that the table is in the KEEP Pool (Oracle9).' select p.owner, p.name, t.num_rows, -- ltrim(t.cache) ch, decode(t.buffer_pool,'KEEP','Y','DEFAULT','N') K, s.blocks blocks, sum(a.executions) nbr_FTS from dba_tables t, dba_segments s, v$sqlarea a, (select distinct address, object_owner owner, object_name name from v$sql_plan where --- operation = 'TABLE ACCESS' and options = 'FULL') p (operation = 'TABLE ACCESS' and options = 'FULL') or (operation = 'INDEX' and options = 'FAST FULL SCAN') ) p where a.address = p.address and t.owner = s.owner and t.table_name = s.segment_name and t.table_name = p.name and t.owner = p.owner and t.owner not in ('SYS','SYSTEM') having sum(a.executions) > 9 group by p.owner, p.name, t.num_rows, t.cache, t.buffer_pool, s.blocks order by p.owner, t.num_rows DESC, sum(a.executions) desc; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 10:11 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
DBAshnik, OEM Express (если таковой имеется) позволяет наложить различные фильтры. Можно выбрать ожидания, например I/O в разрезе объектов БД. Получается красивый график практически в реальном времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 13:11 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
Хотя, по факту, обычно оказывается, что максимальные задержки I/O дают самые большие объекты. Поднимать их в буфер - стрелять себе в ногу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2018, 13:18 |
|
||
|
как определить таблицы и индексы с максимальным ожиданием IO (для KeepBuffer)?
|
|||
|---|---|---|---|
|
#18+
Rbb Ну и в помощь запрос на периодическое просматривание sga на предмет постоянно сидящих там в fts/ffs объектов (запрос для 9i, уж не обезсудьте) большое спасибо! Выглядит вполне логично!!! Жаль, что я сам про v$sqlarea.executions не додумался! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2018, 11:40 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39656640&tid=1883877]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 332ms |

| 0 / 0 |
