Печать
Категория: Oracle Database
Просмотров: 12737

Сервер Oracle поддерживает набор «таблиц» низкого уровня, имя которых начинается с префикса X$ и которые доступны только административному пользователю SYS. Такие таблицы часто называют динамическими X$ таблицами, так как информация в них постоянно обновляется.

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

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

Не смотря на то,  что Oracle не хранит в словаре описание столбцов X$ таблиц, получить их список всё же возможно. В первом случае это можно сделать через команду DESCRIBE утилиты SQLPlus, во втором случае, через запрос к динамической таблице X$KQFCO, где перечислены  столбцы всех динамических X$ таблиц.

Как было сказано выше, доступ к X$ таблицам в Oracle имеет только пользователь SYS. Попытка предоставления привилегий на просмотр X$ таблиц другим пользователям в любом случае приведёт к ошибке. Если пользователю всё же требуется доступ к конкретной X$ таблице (что очень нежелательно), то на данную таблицу можно  организовать представление в схеме SYS, после чего можно спокойно выдавать права на его просмотр как на любой другой объект.

X$BH

Содержит структуры заголовков буферов буферного кэша.

X$KCCAL

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

X$KGLLK

Содержит все структуры блокировок библиотечного кэша.

X$KGLPN

Содержит все структуры закреплений в библиотечном кэше.

X$KGLOB

Содержит все структуры ресурсов в библиотечном кэше.

X$KSMFS

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

X$KSMFSV

Содержит внешнее имя, тип, адрес и размер всех переменных в фиксированной области SGA.

X$KSMJS

Содержит суммарный размер Java пула.

X$KSMDD

Содержит структуры заголовков сегментированных массивов. Сегментированный массив используется для хранения  объектов, таких как, например блокировки и транзакции.

X$KSMHP

Содержит структуры описывающие chunks (участки памяти)  в подкучах (subheaps). Некоторые кучи памяти могут иметь так называемые подкучи, которые состоят из одного или нескольких экстентов.

X$KSMSP

Содержит структуры описывающие chunks (участки памяти)  в разделяемом пуле.

X$KSMSPR

Содержит структуры описывающие chunks (участки памяти)  в резервной области разделяемого пула.

X$KSPPI

Содержит структуры включающие название и описание параметров инициализации (включая скрытые).

X$KSMLRU

Содержит структуры содержащие информацию о выделениях chunks в разделяемом пуле по причине устаревания объектов. Объекты хранятся и очищаются на основании алгоритма LRU. Запрос к этой таблице можно сделать только один раз. Последующий запрос не возвращает строк.