Oracle для профессионалов


Область SGA


Каждый экземпляр Oracle имеет одну большую область памяти, которая называется SGA, System Global Area — глобальная область системы. Это большая разделяемая структура, к которой обращаются все процессы Oracle. Ее размер варьируется от нескольких мегабайт в небольших тестовых системах до сотен мегабайт в системах среднего размера и множества гигабайт в больших системах.

В ОС UNIX область SGA — это физический объект, которую можно "увидеть" с помощью утилит командной строки. Физически область SGA реализована как сегмент разделяемой памяти — отдельный фрагмент памяти, к которому могут подключаться процессы. При отсутствии процессов Oracle вполне допустимо иметь в системе область SGA; память существует отдельно от них. Однако наличие области SGA при отсутствии процессов Oracle означает, что произошел тот или иной сбой экземпляра. Эта ситуация — нештатная, но она бывает. Вот как "выглядит" область SGA в ОС UNIX:

$ ipcs -mb IPC status from <running system> as of Mon Feb 19 14:48:26 EST 2001 T ID KEY MODE OWNER GROUP SEGSZ Shared Memory: m 105 0xf223dfc8 --rw-r----- ora816 dba 186802176

В ОС Windows увидеть область SGA, как в ОС UNIX, нельзя. Поскольку на этой платформе экземпляр Oracle работает как единый процесс с одним адресным пространством, область SGA выделяется как приватная память процесса ORACLE.EXE. С помощью диспетчера задач Windows (Task Manager) или другого средства контроля производительности можно узнать, сколько памяти выделено процессу ORACLE.EXE, но нельзя определить, какую часть по отношению к другим выделенным структурам памяти занимает область SGA.

В самой СУБД Oracle можно определить размер области SGA независимо от платформы. Есть еще одно "магическое" представление V$, именуемое V$SGASTAT. Вот как его можно использовать:

tkyte@TKYTE816> compute sum of bytes on pool tkyte@TKYTE816> break on pool skip 1 tkyte@TKYTE816> select pool, name, bytes 2 from v$sgastat 3 order by pool, name;

POOL NAME BYTES ----------- ------------------------------ ---------- java pool free memory 18366464 memory in use 2605056 *********** ---------- sum 20971520




Начало  Назад  Вперед



Книжный магазин