Шаг 123 - БД Oracle - Табличные пространства, ввод - вывод

В прошлый раз мы с вами создали пару табличных пространств, и поработали с ними. Кое, что надеюсь, стало уже яснее, а кое что может еще потребовать рассмотрения. Если вы оставили табличные пространства из прошлого шага, то можете работать с ними, если нет, то давайте проделаем следующее. Посмотрим как можно, создав табличное пространство, добавить к нему файл данных, а затем рассмотрим что из этого вытекает! Итак, запускаем SQL*Plus и заходим в ваш экземпляр с правами DBA пользователем SYS или SYSTEM, (можете и MILLER'ом, если ваш админ дал вам права на создание табличных пространств) затем запускаем такой SQL код: (если хотите, можете использовать табличное пространство из прошлого шага):

CREATE TABLESPACE PROBATBS DATAFILE 'C:\ORACLE\ORADATA\PROBA\PRBONE.DAT'
SIZE 100M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 200M
/

Видим после прохода:

SQL> CREATE TABLESPACE PROBATBS DATAFILE 'C:\ORACLE\ORADATA\PROBA\PRBONE.DAT'
  2  SIZE 100M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 200M
  3  /

Раздел создан.

Мы создали табличное пространство PROBATBS величиной 100M и возможностью расширения до 200M. А что если вам по какой-либо причине, скажем, почти полной загрузке этого пространства, добавить еще один раздел! Запустим вот такой скрипт:

ALTER TABLESPACE PROBATBS ADD DATAFILE 'C:\ORACLE\ORADATA\PROBA\PRBTWO.DAT'
SIZE 50M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 100M
/

Видим после прохода:

SQL> ALTER TABLESPACE PROBATBS ADD DATAFILE 'C:\ORACLE\ORADATA\PROBA\PRBTWO.DAT'
  2  SIZE 50M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 100M
  3  /

Раздел изменен.

Теперь к вашему табличному пространству PROBATBS добавлен еще один кусочек пространства в виде файла данных PRBTWO.DAT. Который может расширяться до 100M, что в совокупности составит 300M табличного пространства PROBATBS. Для большей убедительности давайте дадим запрос к системному представлению:

SELECT tablespace_name, file_name, status, bytes
FROM dba_data_files
WHERE tablespace_name LIKE 'PROB%'
ORDER BY tablespace_name, file_name
/

Получаем:

SQL> SELECT tablespace_name, file_name, status, bytes
  2  FROM dba_data_files
  3  WHERE tablespace_name LIKE 'PROB%'
  4  ORDER BY tablespace_name, file_name
  5  /

TABLESPACE_NAME   FILE_NAME                            STATUS         BYTES
----------------- ------------------------------------ -------------- ------------
PROBATBS          C:\ORACLE\ORADATA\PROBA\PRBONE.DAT   AVAILABLE      104857600
PROBATBS          C:\ORACLE\ORADATA\PROBA\PRBTWO.DAT   AVAILABLE      52428800

Хорошо видно, что мы получили одно табличное пространство PROBATBS состоящее из двух(!) файлов данных. Вот таким образом можно строить и вводить в работу табличные пространства, которые будут вам необходимы в дальнейшем.

И вот здесь мы подходим к тематике, которая напрашивается сама собой. Все табличные пространства это не что иное, как файлы данных на жестких дисках ваших серверов! Так? Значит здесь необходимо продумывать такой вопрос, как настройка всей системы в целом для достижения наибольшей производительности системы. Сама по себе настройка системы ввода-вывода заключается в основном в настройке физической структуры сегментов (таблиц и индексов), которые образуют базу данных. Настройка охватывает табличные пространства состоящие из экстентов, которые в свою очередь состоят из блоков и файлов данных. Все это представляет из себя, в конечном счете, объекты операционной системы! Операции ввода-вывода представляют из себя не что иное, как операции чтения и записи. А вернее это DML - операции такие как SELECT, INSERT, UPDATE, DELETE. Где SELECT - это операция чтения, а UPDATE, INSERT, DELETE - это операции записи! Так!? И DDL - операции это тоже операции записи! Таким образом, любые операции ввода-вывода требуют настройки не только табличных пространств, экстентов, блоков и файлов данных, но также сегментов отката и журналов регистрации транзакций. В связи с тем, что DML - операции пользователей затрагивают все эти объекты.

Думаю, все помнят, я не говорил, что все будет просто! Oracle достаточно сложная СУБД, но и в тоже время простая и надежная БД! Далее попробуем во всем этом разобраться! :)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Летучий Сергей - 20.04.2004