(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

База данных Oracle - СИСТЕМА Ввода-Вывода и работа с ней

Источник: oracloid

Давайте попробуем разобраться, как добиться наибольшей производительности при
работе и обращениям к БД Oracle. Например, начнем с того, как вообще
строится сервер БД. Как правило он имеет массив хард дисков (винчестеров,
венеков и т. д.!) Они могут быть IDE или SCSI. В свою очередь, они
могут быть в RAID массивах или без таковых. Все это только для примера
при выборе оборудования. В руководстве Oracle, как правило рекомендуют
размещать каждое табличное пространство на отдельном диске. Как, например
SYS, TEMP, INDEX и т.д. В наших с вами условиях это не
всегда получается и приходится исходя из возможностей строить максимум из
минимум доступного! При построении такой БД, как правило, неизбежны конфликты
при обращении к жесткому диску (disk contention). Такого рода конфликт
может возникать, когда один или несколько пользователей, работают с одним и тем
же жестким диском сервера. Если, к примеру две таблицы большого объема имеют в
запросах объединения, то их табличные пространства следует размещать на разных
хард драйвах! Хотя я что-то опять размечтался! То же касается и индексов и
сегментов отката! Идеальная картинка будет именно тогда когда, все эти разделы
(табличные пространства) расположены на разных дисках системы. Кстати у меня эта
заветная мечта так и не осуществилась - хотя у меня в системе три сервера, на
двух из которых стоит Oracle. Кто знает может вам повезет больше! :) Это
первое минимальное требование. Но в принципе, если все спланировать и на двух
SCSI драйвах, то тоже работает и не плохо! Далее, при создании схем не
забывайте про то, где будет данный пользователь размещать свои объекты БД. Если
что-то пошло не так можно применить следующий ход:

ALTER USER <ПОЛЬЗОВАТЕЛЬ> DEFAULT TABLESPACE <ДРУГОЕ ТАБЛИЧНОЕ ПРОСТРАНСТВО>
TEMPORARY TABLESPACE TEMP (или другое на выбор)

Собственно кроме определения самого типа приложения (typing the
application
) сразу классифицируйте таблицы по уровням активности. Очень
активные таблицы (hot table), размещают как можно ближе к дискам
SCSI, а таблицы типа warm table и cold table, можете
раскидывать по IDE RAID-ам. Чем больше DML - операций тем, больше
фрагментация в табличных пространствах. Тем больше вам головной боли как
DBA! Далее можно посмотреть в сторону блоков и экстентов! Как вы уже
поняли я думаю в Oracle блоки собраны в экстенты, которые образуют
физическую среду хранимых табличных пространств. Следовательно чем эффективнее
управление экстентами, тем выше производительность системы в целом! Так же
неоправданное увлечение динамическим выделением памяти приводит к большим
накладным расходам и снижению производительности операций ввода-вывода. По этому
по мере возможности применяйте статическое предварительное выделение памяти для
сегментов БД (таблиц, индексов и т.д.). То есть при указании задаваемых
табличных пространств с последующим предварительным выделением памяти для таблиц
можно с несколько большей гибкостью комбинировать в одном и том же табличном
пространстве таблицы с разными требованиями по отношению к экстентам. Можно
привести такой пример:

CREATE TABLESPACE TS1
DATAFILE '/data1/file1.dat' SIZE 256M
DEFAULT STORAGE (INITIAL 100M NEXT 100M
MINEXTENTS1);

CREATE TABLE T1 (a number(9), ..., z number(9))
TABLESPACE TS1;

CREATE TABLE T2 (a number(9), ..., z number(9))
TABLESPACE TS1;


Здесь выделение памяти производится предварительно для всего табличного
пространства. Вернее для двух таблиц вместе.

А вот в этом случае:

CREATE TABLESPACE TS1
DATAFILE '/data1/file1.dat' SIZE 256M;

CREATE TABLE T1 (a number(9), ..., z number(9))
TABLESPACE TS1
STORAGE (INITIAL 100M NEXT 10M
MINEXTENTS 1);

CREATE TABLE T2 (a number(9), ..., z number(9))
TABLESPACE TS1
STORAGE (INITIAL 100M NEXT 10M
MINEXTENTS 1);


Подход несколько иной, так как здесь выделяется память для каждой таблицы
отдельно! Второе выделение памяти для таблиц позволяет обеспечить более гибкое
управление не только ростом табличного пространства, но и связанным с ним
изменением производительности работы. А вот как поступать в каждом случае, это
уже решать вам! Основное нужно четко представлять чего вы хотите от вышей БД
прежде всего. Какого типа она будет! Думайте! Удачи! :-)))

Автор статьи: Летучий Сергей

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 12.05.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Processor License
Oracle Database Personal Edition Named User Plus License
Quest Software. SQL Navigator for Oracle
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Реестр Windows. Секреты работы на компьютере
СУБД Oracle "с нуля"
Delphi - проблемы и решения
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100