(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 Processor License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Personal Edition Named User Plus License
Oracle Database Standard Edition 2 Named User Plus License
Купить Антивирус Dr.Web Server Security Suite для сервера
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Вопросы и ответы по MS SQL Server
3D и виртуальная реальность. Все о Macromedia Flash MX.
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100