Параметр _spin_count содержит кол-во попыток получения защелки, после чего процесс "засыпает".
Параметр является динамическим.
Просмотреть текущее значение:
select v.ksppstvl value
from sys.x_$ksppi p,
sys.x_$ksppsv v
where p.inst_id = userenv('Instance')
and v.inst_id = userenv('Instance')
and p.indx = v.indx
and p.ksppinm = '_spin_count';
Для 9i значение по-умолчанию равно 2000. Многие отмечают, что это значение уже устарело, т.к. производительность современных процессоров значительно увеличилась. В связи с этим часто рекомендуется увеличивать это значение.
(см. 1. Oracle Wait Interface: A Practical Guide to Performance Diagnostics & Tuning, by Richmond Shee, Kirtikumar Deshpande and K Gopalakrishnan, McGraw-Hill/Osborne 2004, ISBN:007222729x
2. Resolving Oracle Latch Contention, By Guy Harrison, Principal Software Architect, Quest Software )
Но крутить этот параметр следует в последнюю очередь, после того как решены основные проблемы с конкуренцией защелок.
Проверить эффективность параметра можно запросом:
select sum(l.misses) misses,
sum(l.spin_gets) spin_gets,
sum(l.sleeps) sleeps,
lpad( to_char(100 * sum(l.spin_gets) / sum(l.misses), '990.00') || '%', 13) hit_rate,
&spin_count * sum(l.sleeps) / sum(l.misses) spin_cost
from sys.v_$latch l
where l.misses > 0;
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий