Словарь данных Oracle и динамические представления производительности

Oracle Database предлагает огромное число внутренних таблиц, позволяющих отслеживать изменения в объектах данных и решать проблемы, возникающие время от времени. Освоение этих ключевых таблиц очень важно, если вы хотите стать квалифицированным администратором баз данных Oracle. Все графические инструменты, подобные OEM, зависят от этих ключевых внутренних таблиц (и представлений) в сборе информации для мониторинга баз данных Oracle. Хотя вы можете предпочесть использование графических инструментов для решения административных задач Oracle, все же важно узнать как можно больше о внутренних таблицах. Знание этих таблиц поможет понять, что на самом деле происходит внутри базы данных Oracle Database.

Внутренние таблицы можно разделить на два больших типа: таблицы словаря со статическими данными и динамические таблицы производительности. Вам не придется обращаться к этим таблицам напрямую, взамен вы будете обращаться к хранимой в них информации через представления, основанные на них. Вы можете получить полный список всех представлений словаря данных с помощью следующего простого запроса: 

SQL> SELECT * FROM dict;

В последующих разделах мы рассмотрим роль этих двух важных типов таблиц и представлений.

Словарь данных Oracle

Каждая база данных Oracle содержит набор таблиц, доступных только для чтения, и известных как словарь данных (data dictionary), который содержит метаданные (информацию о различных компонентах базы данных). Словарь данных Oracle — сердце системы управления базой данных, и знание его позволит стать экспертом-DBA. Если вы хорошо понимаете словарь данных, то можете легко выполнять задачи по управлению базой данных. Вы обращаетесь к доступным только для чтения таблицам словаря через представления, построенные на их основе. Представления подобны логическим таблицам, основанным реальных на таблицах Oracle. Администраторы баз данных Оракл и разработчики в большой степени зависят от словаря данных, поскольку он содержит информацию о различных компонентах базы данных. Эти таблицы содержат информацию о различных компонентах базы данных, таких как список таблиц, их столбцов, пользователей, их привилегий, имена файлов и табличных пространств и т.д. Простой запрос вроде приведенного ниже, вызовет несколько обращений к словарю данных, прежде чем Oracle выполнит его:

SQL> SELECT employee_name
FROM emp
WHERE city = 'NEW YORK';

Важно заметить, что таблицы словаря данных ничего не сообщают об аспектах работающего экземпляра. Словарь данных содержит лишь информацию о структуре базы данных, такую как файлы базы данных, таблицы, функции и процедуры, а также информацию о пользователях. Другой набор представлений, называемый динамическими представлениями производительности, содержит информацию о текущем работающем экземпляре.


Совет. Таблицы словаря данных описывают всю базу данных: ее логическую и физическую структуру, использование свободного пространства, ее объекты с их ограничениями, а также информацию о пользователях. Вы не можете обращаться к таблицам словаря данных напрямую;вместо этого предоставляется доступ к представлениям, базирующимся на них. Вы не можете также самостоятельно изменять никакую информацию в таблицах словаря данных. Только Oracle может изменять данные в таблицах словаря. Когда, например, вы запускаете запрос,включающий столбец CITIES из таблицы под названием EMPLOYEES, база данных просматривает различные таблицы словаря данных, чтобы проверить существование этого столбца и этой таблицы, и подтвердить, что пользователь имеет право на выполнение этого оператора.Несложно представить, что тяжело нагруженной базе данных OLTP потребуется множество запросов к ее таблицам словаря данных на протяжении всего дня.


Суперпользователь Oracle по имени SYS владеет большей частью таблиц словаря данных (хотя некоторые создаются от имени пользователя SYSTEM), и они хранятся в табличном пространстве System.


Совет. Oracle рекомендует регулярно анализировать как таблицы словаря данных, так и динамические таблицы производительности (также называемые фиксированными таблицами), чтобы повышать производительность.


Динамические представления производительности (V$)

В дополнение к словарю данных Oracle поддерживает важнейший набор динамических таблиц производительности. Эти таблицы поддерживают информацию о текущем экземпляре, и Oracle постоянно их обновляет.

Набор виртуальных динамических таблиц называется таблицами X$. Oracle не разрешает прямой доступ к этим таблицам. Вместо этого создаются представления на базе всех этих таблиц, а затем — синонимы для таких представлений. Вы будете обращаться к этим представлениям, называемым представлениями V$, чтобы получить информацию о различных аспектах работающего экземпляра. Представления V$ — основа настройки производительности базы данных Oracle. Если вы хотите как следует освоить базу данных Oracle, то должны знать динамические представления V$, потому что они содержат всю важнейшую информацию об экземпляре Oracle.

Динамические представления производительности, подобно представлениями словаря данных, основаны на доступных только для чтения таблицах, обновлять которые может только Oracle. Некоторые из этих таблиц хранят информацию сеанса, а другие — информацию, касающуюся всей системы. Вы найдете динамические представления исключительно полезными для управления сеансами, выполнения операций резервного копирования и, что важнее всего, настройки производительности. Помните, однако, что динамические таблицы производительности заполняются только на протяжении работы экземпляра и очищаются при его останове.

Три набора представлений словаря данных

Oracle не позволяет обращаться к таблицам словаря данных напрямую. Он создает представления на базе этих таблиц и общедоступные синонимы для этих представлений, к которым могут обращаться пользователи. Существует три набора представлений словаря данных — USER, ALL и DBA, — каждый из которых содержит сходный набор представлений со сходным набором столбцов. Представления в каждой категории снабжены префиксом — USER, ALL или DBA. Каждый из этих наборов представлений показывает только информацию, для доступа к которой у пользователя имеются соответствующие привилегии, как описано ниже.

  • USER. Представления USER показывают пользователю только те объекты, которыми он владеет. Эти представления полезны для пользователей, особенно разработчиков, для просмотра принадлежащих ему объектов, привилегий и т.п.
  • ALL. Представления ALL показывают информацию об объектах, на доступ к которым у вас имеются соответствующие привилегии. Представления с префиксом ALL включают информацию о пользовательских объектах и всех прочих объектах,на доступ к которым есть права — непосредственно, или через принадлежность к роли.
  • DBA. Представления DBA — наиболее мощные из всех. Пользователи, которым назначена роль DBA, могут обращаться к информации о любом объекте или любом пользователе в базе данных. Представления словаря, снабженные префиксом DBA — это именно те, что вы применяете для мониторинга и администрирования базы данных.

Как создается словарь данных

Словарь данных создается автоматически, когда вы создаете базу данных. Ну, почти автоматически, потому что для этого потребуется вручную запустить сценарий catalog.sql (находящийся в каталоге $ORACLE_HOME/rdbms/admin), если вы не используете Database Configuration Assistant. Сценарий catalog.sql создает таблицы словаря данных, представления и синонимы, и они являются первыми объектами, наполняющими базу данных. Словарь данных, однажды созданный, должен оставаться в табличном пространстве System.

В оставшейся части этой главы вы ознакомитесь только с таблицами словаря данных DBA, поскольку в центре нашего внимания — управление базой данных. Существует множество таблиц и представлений словаря данных. Вы изучите наиболее полезные из представлений словаря в следующих нескольких разделах.

Использование статических представлений словаря данных

Словарь данных содержит метаданные о вашей базе данных Oracle Database. Таблицы словаря данных и представления, основанные на них, называются статическими, потому что работающий экземпляр базы данных не модифицирует данные в этих таблицах и представлениях. Эти таблицы и представления модифицируются только при проведении изменений в самом словаре данных, например, создавая новую таблицу или нового пользователя. Независимо от того, управляете ли вы базой данных вручную или по средством изощренных графических инструментов, словарь данных (наряду с динамическими таблицами производительности) является источником всей информации о базе данных.

Вас заинтересует / Intresting for you:

Oracle Database: обзор базы да...
Oracle Database: обзор базы да... 23563 просмотров Илья Дергунов Sun, 11 Aug 2019, 15:01:35
Oracle Scheduler
Oracle Scheduler 1808 просмотров Stas Belkov Tue, 21 Nov 2017, 13:18:46
Версии СУБД Oracle Database 10...
Версии СУБД Oracle Database 10... 5767 просмотров Илья Дергунов Sat, 11 Aug 2018, 11:43:08
Предупреждения при нехватки ме...
Предупреждения при нехватки ме... 3214 просмотров Stas Belkov Tue, 21 Nov 2017, 13:18:46
Войдите чтобы комментировать

ildergun аватар
ildergun ответил в теме #9115 5 года 9 мес. назад
Полезная инфа. Да, словарь данных можно и нужно задействовать в настройке производительности СУБД Oracle