Давайте после множества примеров PL/SQL - обратимся, к такому понятию БД Oracle, как табличное пространство. В шаге-23, мы немного рассмотрели этот вопрос, но только в начальной стадии. Теперь давайте познакомимся с этим понятием более детально. Помните наш запрос:
SQL> SELECT tablespace_name, file_name, bytes 2 FROM dba_data_files 3 ORDER BY tablespace_name, file_name 4 / TABLESPACE_NAME FILE_NAME BYTES ----------------- -------------------------------------- ---------- INDX C:\ORACLE\ORADATA\PROBA\INDX01.DBF 2097152 OEM_REPOSITORY C:\ORACLE\ORADATA\PROBA\OEMREP01.DBF 5242880 RBS C:\ORACLE\ORADATA\PROBA\RBS01.DBF 26214400 SYSTEM C:\ORACLE\ORADATA\PROBA\SYSTEM01.DBF 146800640 TEMP C:\ORACLE\ORADATA\PROBA\TEMP01.DBF 2097152 USERS C:\ORACLE\ORADATA\PROBA\USERS01.DBF 3145728 6 rows selected
В данном случае мы видим, что наша с вами система, имеет шесть табличных пространств, каждое из которых содержится в своем файле данных, который в свою очередь расположен в системном каталоге Oracle Server - C:\Oracle\ORADATA\proba. Иначе, это можно описать как C:\ORAHOME\ORADATA\SID. По умолчанию при создании экземпляра БД используется именно такой путь к файлам данных табличных пространств. Если говорить прямо, то табличное пространство, это конкретный файл данных, расположенный в системном каталоге Oracle. А, в строгой формулировке - табличное пространство это логическая структура, которая используется для группировки данных с однотипными методами доступа. В табличное пространство может входить, один или несколько файлов данных. Но, как правило, один или несколько файлов данных не могут хранить два табличных пространства, а только одно!
Помните когда мы создавали пользователя (схему), мы с вами указывали где он будет хранить свои данные. Это и есть то самое табличное пространство. И вот здесь мы с вами подходим к очень интересному моменту. При создании любой БД, как правило, оговаривается ее тип, исходя из этого и создается сам экземпляр! Так вот в нашей учебной БД, вы этого не видели. Но, если бы мы пошли по более конструктивному пути, (мы еще это проделаем!) а, именно установили сам сервер Oracle, затем создали бы экземпляр и провели его настройку, то вы бы это все увидели. Итак, к чему я это все болтаю, а вот к чему!
БД Oracle содержит и поддерживает несколько типов при создании экземпляра. Но основные из них это OLTP (On-Line Transaction Processing) и DSS (Decision Support System). Я понимаю, что это немного утомляет когда много теории, но знать это необходимо. Рассмотрим подробнее.
Рассмотрим систему OLTP. Данная система характеризуется высоким параллелизмом (большим количеством интерактивных пользователей) и как следствие высокой интенсивностью обновлений (то есть большое количество одновременно открытых транзакций). В таких системах, объем данных может значительно изменяться во времени как бы, то пусто, то густо! По этому, при создании табличных пространств (вот к чему я и вел!) и экстентов в них для систем OLTP необходимо задавать максимально возможный размер. Так как табличные пространства с включенной опцией динамического расширения может привести к тому, что производительность системы может значительно упасть! Вследствие этого возникает парадокс, что для достижения высокой производительности табличные пространства должны быть фиксированной длинны и при этом превосходить по объему максимальный размер данных, обрабатываемых в нем. Так же для управления транзакциями необходимо иметь принципиальную возможность выполнения достаточного количества отмен и откатов. Для коротких транзакций небольшие сегменты отката, для длительной и объемной транзакции большие сегменты отката. Так же большее количество журналов регистрации транзакций и более продуманной системы построения экземпляра в целом с применением методов диагностики и настройки. Вообще по большому счету при работе с любой БД, администрирование и настройка БД, это каждодневный и нелегкий труд админа! Такая у него доля! Кстати ярким примером системы OLTP, может служить система, применяемая сегодня в супермаркетах, коих у нас великое множество (Эльдорадо (Москва) НК - Сити (Хабаровск) и т.д.). В единицу времени может списываться сотня наименований товаров, со склада с подсчетом общего баланса и в то же время сотни наименований могут быть приняты на учет, так как пришел груз и получатель его оприходует в тот же момент! Собственно это и есть кратко система OLTP.
Далее продолжим рассмотрение второго типа экземпляров БД, для более ясного усвоения изложенного! :)