Программирование >>  Oracle 

1 ... 26 27 28 [ 29 ] 30 31 32 ... 469


В ОС 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

20971520

large pool

free memory

6079520

session heap

64480

6144000

shared pool

Checkpoint queue

73764

KGFF heap

5900

KGK heap

17556

KQLS heap

554560

PL/SQL DIANA

364292

PL/SQL MPCODE

138396

PLS non-lib hp

2096

SYSTEM PARAMETERS

61856

State objects

125464

VIRTUAL CIRCUITS

97752

character set object

58936

db block buffers

408000

db block hash buckets

179128

db files

370988

dictionary cache

319604

distributed transactions

180152

dlo fib struct

40980

enqueue resources

94176

event statistics per sess

201600

file * translation table

65572

fixed allocation callback

free memory

9973964

joxlod: in ehe

52556



*********** sum

joxlod: in phe

4144

joxs heap init

library cache

1403012

message pool freequeue

231152

miscellaneous

562744

processes

40000

sessions

127920

sql area

2115092

table columns

19812

transaction branches

368000

transactions

58872

trigger defini

2792

trigger inform

18322028

db block buffers

24576000

fixed sga

70924

log buffer

66560

24713484

43 rows selected.

Область SGA разбита на несколько пулов.

Java-пул. Java-пул представляет собой фиксированный пул памяти, выделенный виртуальной машине JVM, которая работает в составе сервера.

Большой пул. Большой пул (large pool) используется сервером в режиме MTS для

размещения памяти сеанса, средствами распараллеливания Parallel Execution для буферов сообщений и при резервном копировании с помощью RMAN для буферов дискового ввода/вывода.

Разделяемый пул. Разделяемый пул (shared pool) содержит разделяемые курсоры, хранимые процедуры, объекты состояния, кэш словаря данных и десятки других компонентов данных.

Неопределенн1й ( Null ) пул. Этот пул не имеет имени. Это память, выделенная под буферы блоков (кэш блоков базы данных, буферный кэш), буфер журнала повторного выполнения и фиксированную область SGA .

Поэтому графически область SGA можно представить следующим образом:




На общий размер SGA наиболее существенно влияют следующие параметры init.ora.

JAVA POOL SIZE. Управляет размером Java-пула.

SHARED POOL SIZE. Управляет (до некоторой степени) размером разделяемого пула.

LARGE POOL SIZE. Управляет размером большого пула.

DB BLOCK BUFFERS. Управляет размером буферного кэша.

LOG BUFFER. Управляет (отчасти) размером буфера журнала повторного выполнения.

За исключением параметров SHARED POOL SIZE и LOG BUFFER, имеется однозначное соответствие между значением параметров в файле init.ora и объемом памяти, выделяемой соответствующей структуре в области SGA. Например, если умножить DB BLOCK BUFFERS на размер буфера, получится значение, совпадающее с размером в строке DB BLOCK BUFFERS для пула NULL в представлении V$SGASTAT (добавляется определенный объем памяти на поддержку защелок). Суммарное количество байтов, вычисленное из строк представления V$SGASTAT для большого пула, совпадет со значением параметра инициализации LARGE POOL SIZE.

Фиксированная область SGA

Фиксированная область SGA - это часть области SGA, размер которой зависит от платформы и версии. Она компилируется в двоичный модуль сервера Oracle при установке (отсюда и название - фиксированная ). Фиксированная область SGA содержит переменные, которые указывают на другие части SGA, а также переменные, содержащие значения различных параметров. Размером фиксированной области SGA (как правило, очень небольшой) управлять нельзя. Можно рассматривать эту область как загрузочную часть SGA, используемую сервером Oracle для поиска других компонентов

SGA.

Буфер журнала повторного выполнения

Буфер журнала повторного выполнения используется для временного кэширования данных активного журнала повторного выполнения перед записью на диск. Поскольку перенос данных из памяти в память намного быстрее, чем из памяти - на диск, использование буфера журнала повторного выполнения позволяет существенно ускорить работу сервера. Данные не задерживаются в буфере журнала повторного выполнения надолго. Содержимое этого буфера сбрасывается на диск:

раз в три секунды;

при фиксации транзакции;

при заполнении буфера на треть или когда в нем оказывается 1 Мбайт данных

журнала повторного выполнения.

Поэтому создание буфера журнала повторного выполнения размером в десятки Мбайт - напрасное расходование памяти. Чтобы использовать буферный кэш журнала повторного выполнения размером 6 Мбайт, например, надо выполнять продолжительные тран-



1 ... 26 27 28 [ 29 ] 30 31 32 ... 469

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика