Шаг 25 - Основные компоненты БД Oracle - Сегменты БД, продолжаем

Теперь, рассмотрим сегмент ИНДЕКС таблиц БД. Индексы необходимы для ускорения поиска данных в таблицах. В индексе хранятся значения одного или нескольких столбцов, а так же столбец ROWID для каждого из хранимых значений. При поиске в таблице используется значение ROWID конкретной записи, и она возвращается непосредственно. В БД Oracle используется несколько типов индексов. Один из них называется B*-Tree-Index (двоичный древовидный индекс). Индексы такого типа формируются командой CREATE INDEX. Показывать как это делается я пока не буду, к этому мы подойдем позже, а пока просто разберем типы этих сегментов БД. Существует так же "кластерный индекс", он используется при построении такого типа данных как "кластеры таблиц". Существуют так же bitmap индексы, которые формируются по битовой маске столбцов таблиц. Но в основном вам предстоит работать с B*-Tree-Index-ми, которых для начала вполне хватит. Добавлю, что данные обо всех индексах БД, а так же индексируемых столбцах БД можно найти в представлениях DBA_INDEXES, DBA_IND_COLUMNS. К стати введите в SQL*Plus команду DESC DBA_INDEXES, DESC DBA_IND_COLUMNS. Могу вас уверить, получите много полезной информации из столбца Comments описания! :) К стати очень полезная команда!

Следующий сегмент БД называется СЕГМЕНТ ОТКАТА. У него даже название подходящее, само собой напрашивается. Что это такое? Сегмент отката, это если выразиться правильным языком, "элементы информационной структуры БД", которые сохраняют информацию о том, что было в блоках данных до того как их начали изменять. Или говоря другими словами, стартовала транзакция. Это значит, что данные в БД начали изменяться. Как только этот процесс начинается, все, что было ранее, скажем в таблице, записывается, в сегмент отката (rollback segments). Далее транзакция начинает свое черное дело, и вдруг ей понадобились данные, которые сейчас находятся в сегменте отката, они оттуда легко извлекаются! Такая операция носит название "плотное чтение" (consistent read). После того, как вы подтвердили транзакцию, введя оператор COMMIT, все данные в сегменте отката помечаются как не действительные, и как говорится, "Шура, пилите гирю! - Она золотая!!!". Если нужно все вернуть на круги своя, оборвав действия текущей транзакции, введите оператор ROLLBACK. Все останется как было! Кстати, при работе сегмент отката присоединяет как минимум два расширения, и как следствие нужно сделать так, чтобы ему хватило текущих расширений для работы. Иначе, он потребует еще и вся операция может затянуться или привести к аварийному откату транзакции, если места в текущем табличном пространстве не хватит для работы сегмента отката! Понятно, что я здесь излагаю. Это нужно хорошо представлять, иначе можно лишить себя любимого важных данных! А правильная настройка сегментов отката и табличных пространств поможет вам избежать неприятных моментов!

Самое интересное, СЛОВАРИ ДАННЫХ БД. В словарях данных хранится просто огромное количество информации о БД, ее пользователях, объектах и т.д.!!! Они применяются администратором БД для правильной настройки и эксплуатации БД. Обеспечение ее бесперебойной работы 24 часа в сутки, 365 дней в году! :) Словари данных доступны пользователям БД, SYS и SYSTEM, а так же пользователям имеющим привилегии на их использование. Доступ к словарям идет только в режиме чтения!!! Это важно!!! Не пытайтесь что-либо поменять в словарях вручную, последствия будут самые не предсказуемые!!! :) Словари состоят из 4-х компонентов:

  1. X$- таблиц, внутренние таблицы БД.
  2. $- Таблицы словаря данных
  3. V$- таблиц представления текущей активности.
  4. Представления словаря.

X$- таблицы используются самой БД, их содержимое зашифровано и извлекать из них данные нет особой необходимости! $- Таблицы словаря данных формируются при создании БД файлом SQL.BSQ и принадлежат пользователю SYS. Содержит информацию обо всех конструкциях БД. V$- таблицы представления текущей активности, являются основным инструментом администратора БД! С их помощью можно вести полный мониторинг БД. Принадлежат так же пользователю SYS. Представления словаря формируются из X$- таблиц и имеют три основных типа:

  1. ALL_
  2. DBA_
  3. USER_

В них соответственно можно найти информацию. В ALL_ обо всех объектах БД и пользователей, DBA_ принадлежит администратору и используется им. USER_ все объекты конкретной схемы пользователя. Вот кратенько о сегментах "словари данных". Но, я так же советую дать такой запрос, войдя в БД пользователем SYSTEM:

SELECT * FROM DICTIONARY
/

Например, я получил 817(!) сток! Здесь, можно найти краткое описание каждого словаря данных! Вот вам кусочек, запроса для примера:

SQL> SELECT * FROM DICTIONARY
  2  /

TABLE_NAME                     COMMENTS
------------------------------ --------------------------------------------------------------------------------
ALL_ALL_TABLES                 Description of all object and relational tables accessible to the user
ALL_ARGUMENTS                  Arguments in object accessible to the user
ALL_CATALOG                    All tables, views, synonyms, sequences accessible to the user
ALL_CLUSTERS                   Description of clusters accessible to the user
ALL_CLUSTER_HASH_EXPRESSIONS   Hash functions for all accessible clusters
ALL_COLL_TYPES                 Description of named collection types accessible to the user
ALL_COL_COMMENTS               Comments on columns of accessible tables and views
ALL_COL_PRIVS                  Grants on columns for which the user is the grantor, grantee, owner,
                                or an enabled role or PUBLIC is the grantee

ALL_COL_PRIVS_MADE             Grants on columns for which the user is owner or grantor
ALL_COL_PRIVS_RECD             Grants on columns for which the user, PUBLIC or enabled role is the grantee
ALL_CONSTRAINTS                Constraint definitions on accessible tables
ALL_CONS_COLUMNS               Information about accessible columns in constraint definitions
ALL_CONTEXT                    Description of all active context namespaces under the current session
ALL_DB_LINKS                   Database links accessible to the user
ALL_DEF_AUDIT_OPTS             Auditing options for newly created objects
ALL_DEPENDENCIES               Dependencies to and from objects accessible to the user
ALL_DIMENSIONS                 Description of the dimension objects accessible to the DBA
ALL_DIM_ATTRIBUTES             Representation of the relationship between a dimension level and
                                a functionally dependent column
.
.
.

Достаточно хорошо видно, что можно найти как имя нужного словаря, так и то, что он содержит, если еще подкрепить это все командой DESC, то я думаю, что скоро родится еще 10, а может 20 администраторов БД! :) Естественно, желательно немного знать English. И дело я думаю, пойдет!


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