$$$SYSRL
Назначение
Системная таблица $$$SYSRL
предназначена для хранения системной информации о параметрах БД и ее объектах.
Под объектами БД понимаются:
-
системные таблицы;
-
пользовательские таблицы;
-
представления;
-
синонимы.
Схема таблицы
Схема таблицы $$$SYSRL
приведена в таблице 45.
Имя | Тип данных | Содержание |
---|---|---|
$$$S11 | integer | Системный идентификатор объекта. |
$$$S12 | integer | Идентификатор владельца. |
$$$S13 | char(66) | Имя объекта. |
$$$S14 | byte(262) | Системное описание объекта. |
Функциональная структура
Функциональная структура таблицы $$$SYSRL
приведена в таблице 46.
Структура системного описания БД
Структура системного описания БД приведена в таблице 47.
Поле | Тип данных | Смещение | Содержание |
---|---|---|---|
NAMBD[18] |
L_CHAR | 0 |
Имя БД. Это поле и все остальные поля, идущие ниже, соответствуют столбцу $$$S14. |
DLREL |
L_WORD | 18 |
Кэш таблицы |
DLATR |
L_WORD | 20 |
Кэш таблицы $$$ATTRI. Обычно не более 1000. |
DLFIL |
L_WORD | 22 |
Длина очереди файлов. Максимальное число одновременно открытых файлов. |
DLKAN |
L_WORD | 24 |
Длина очереди каналов. Максимальное количество одновременных подсоединений к БД. |
NAMWBV[4] |
L_CHAR | 26 |
Логическое имя устройства, на котором расположен рабочий файл бит-векторов. |
NAMWRK[4] |
L_CHAR | 30 |
Логическое имя устройства, на котором расположен рабочий файл найденных записей поискового запроса. |
KWANTRID |
L_LONG | 34 |
Квант обработки при работе по RowId. Целое положительное число задает количество RowId, обрабатываемых без прерывания, обычно не более 10. |
KWANTIND |
L_LONG | 38 |
Не используется. |
MAXRID |
L_LONG | 42 |
Не используется. |
NAMSRT[4] |
L_CHAR | 46 |
Логическое имя устройства, на котором расположен рабочий файл сортировки. |
NAMLOG[4] |
L_CHAR | 50 |
Логическое имя устройства, на котором расположен файл системного журнала. |
Size_File |
L_LONG | 54 |
Размер каждого файла системного журнала. Задается в страницах (1 страница – 4096 байтов). |
cpTime[3] |
L_WORD | 58 |
Дата создания контрольной точки системного журнала. |
DoneFlag |
L_BYTE | 64 |
Состояние системного журнала:
|
MajorVer |
L_BYTE | 65 |
Старший разряд версии СУБД. |
MinorVer |
L_BYTE | 66 |
Младший разряд версии СУБД. |
SpecialFl |
L_BYTE | 67 |
Флаги БД:
По умолчанию значение флага равно 1. |
RevNum |
L_WORD | 68 |
Номер ревизии БД. |
DevCacheSz |
L_WORD | 70 |
Размер очереди устройств. |
Size_Circle |
L_WORD | 72 |
Количество файлов системного журнала. |
WBV_Limit |
L_LONG | 74 |
Максимальный размер рабочего файла бит-векторов. Задается в страницах. |
WRK_Limit |
L_LONG | 78 |
Максимальный размер рабочего файла найденных записей поискового запроса. Задается в страницах. |
SRT_Limit |
L_LONG | 82 |
Максимальный размер рабочего файла сортировки. Задается в страницах. |
DLUSR |
L_WORD | 86 |
Кэш системной таблицы $$$USR. Обычно не более 200. |
Audit |
L_BYTE | 88 |
Флаг запуска аудита БД:
|
UnlistedDevice |
L_BYTE | 89 |
Флаг – признак доступности устройств (см. документ «Администрирование комплекса средств защиты данных»). |
UnlistedStation |
L_BYTE | 90 |
Флаг – признак доступности сетевых устройств (см. документ «Администрирование комплекса средств защиты данных»). |
LogResFiles |
L_BYTE | 91 |
Количество зарезервированных файлов под системный журнал. |
LogMaxFiles |
L_WORD | 92 |
Максимальное количество файлов в системном журнале. |
Last_Address[8] |
L_BYTE | 94 |
Номер последнего занятого байта системного журнала; первые 4 байта – номер страницы файла журнала, вторые 4 байта – смещение в этой странице. |
SQLUSR |
L_WORD | 102 |
Размер кэша пользователей БД SQL-транслятора. |
SQLCOL |
L_WORD | 104 |
Размер кэша столбцов таблиц БД SQL-транслятора. |
SQLPRC |
L_WORD | 106 |
Размер кэша хранимых процедур SQL-транслятора. |
SQLCHS |
L_WORD | 108 |
Размер кэша кодировок SQL-транслятора. |
SQLTAB |
L_WORD | 110 |
Размер кэша таблиц БД SQL-транслятора. |
SRTCNT |
L_WORD | 112 |
Количество поддерживаемых процессов сортировки. |
EXTSIZE |
L_WORD | 114 |
Размер расширения файлов таблиц. Задается в страницах. |
CharSet |
L_WORD | 116 |
Идентификатор кодировки по умолчанию БД. |
Transaction ID |
L_DLONG | 118 |
Идентификатор последней выполненной транзакции. |
LicenseDay |
L_WORD | 126 |
Срок действия лицензии на СУБД (в днях). |
RunCountAfterTerm |
L_WORD | 128 |
Количество запусков СУБД после истечения срока лицензии. |
MaxRecSize |
L_WORD | 130 |
Максимальный допустимый размер записей БД. |
PIOpenLimit |
L_BYTE | 132 |
Количество открытых фразовых индексов. |
Res4 |
L_BYTE | 133 |
Не используется. |
UserCharSet |
L_WORD | 134 |
Идентификатор пользовательской кодировки по умолчанию. |
CreationTime |
DATE | 136 |
Дата создания БД. |
StartupTime |
DATE | 142 |
Дата последнего запуска СУБД. |
ShutdownTime |
DATE | 148 |
Дата последнего корректного останова СУБД. |
INMREL |
L_WORD | 154 |
Максимальный размер очереди таблиц «в памяти». |
INMATR |
L_WORD | 156 |
Максимальный размер очереди столбцов таблиц «в памяти». |
INMFIL |
L_WORD | 158 |
Максимальный размер очереди файлов таблиц «в памяти». |
TrigFlags |
L_BYTE | 160 |
Маска наличия триггеров для БД:
|
Flags |
L_BYTE | 161 |
Маска для различных параметров:
|
lAREA_Limit |
L_LONG | 162 |
Максимальное количество дескрипторов в рабочем файле найденных записей поискового запроса. Если в этом поле установлено значение 0, то используется 2048 дескрипторов. |
WRK_Size |
L_LONG | 166 |
Размер рабочего файла найденных записей поискового запроса, устанавливаемый при завершении работы БД. |
WBV_Size |
L_LONG | 170 |
Размер рабочего файла бит-векторов, устанавливаемый при завершении работы БД. |
SRT_Size |
L_LONG | 174 |
Размер рабочего файла сортировки, устанавливаемый при завершении работы БД. |
wInsertQuant |
L_WORD | 178 |
Квант обработки при добавлении записей. Если значение равно 0, то используется значение поля KWANTRID. |
wDeleteQuant |
L_WORD | 180 |
Квант обработки при удалении записей. Если значение равно 0, то используется значение поля KWANTRID. |
wUpdateQuant |
L_WORD | 182 |
Квант обработки при модификации записей. Если значение равно 0, то используется значение поля KWANTRID. |
wScanQuant |
L_WORD | 184 |
Квант обработки при сканировании записей. Если значение равно 0, то используется значение поля KWANTRID. |
wIndexScanQuant |
L_WORD | 186 |
Квант обработки при сканировании индекса. Если значение равно 0, то используется значение 98. |
wIndexPageQuant |
L_WORD | 188 |
Квант обработки при сканировании страниц индекса. Если значение равно 0, то используется значение 10. |
wIndexValuesQuant |
L_WORD | 190 |
Квант обработки для найденных значений при сканировании индекса. Если значение равно 0, то используется значение 10. |
wSortQuant |
L_WORD | 192 |
Квант обработки при заполнении страниц сортировки. Если значение равно 0, то используется значение 2. |
wChanQuant |
L_WORD | 194 |
Количество выполняемых подряд квантов одного канала. Если значение равно 0, то используется значение 10. |
wTimeQuant |
L_WORD | 196 |
Квант времени выполняемых запросов. |
wQueryCacheSize |
L_WORD | 198 |
Размер кэша текстов запроса. |
wAnswerCacheSize |
L_WORD | 200 |
Размер кэша результатов запроса. |
lMaxChanBufSize |
L_LONG | 202 |
Максимальный размер буфера канала. |
Пример
! Версия СУБД select getbyte($$$s14,65), getbyte($$$s14,66) from $$$sysrl where rowid=1; | 6| 0| ! Количество процессов сортировки select getword($$$s14,112) from $$$sysrl where rowid=1; | 1| ! Дата создания БД select MULTIME(2, getlong($$$S14,136), to_date('01.01.1990','DD.MM.YYYY')) from $$$SYSRL where rowid=1; |29.05.2013:11:51:41.00|
Структура системного описания объекта БД
Структура системного описания объекта БД (RowId записи 2-N таблицы SYSRL
) приведена в таблице 48.
Поле | Тип данных | Смещение | Содержание |
---|---|---|---|
NODE_ID | L_WORD | 0 | Идентификатор узла $$$NODE. Это поле и все остальные поля, идущие ниже, соответствуют столбцу $$$S14. |
PUBLIC | L_LONG | 2 | Маска доступа к записям объекта для пользователей категории Public:
|
TAB_FL | L_BYTE | 6 | Тип объекта:
|
NMBATRS | L_BYTE | 7 | Количество столбцов. Задается только для таблицы и представления. Для синонима равно 0. |
NMBKEYS | L_BYTE | 8 | Количество ключей в объекте. Задается только для таблицы. |
PCTFILL | L_BYTE | 9 | Для таблицы определяет процент, который составляет средняя упакованная запись от неупакованной записи. Для представления в этом поле может находиться значение 0, если тело представления хранится в системном описании объекта БД (начиная с поля Integrity) или, если оно помещается в одну дополнительную страницу, либо 1, если представление велико, и его тело хранится отдельно от описания в нескольких страницах. |
PrimaryCount | L_BYTE | 10 | Количество ключей в составном ключе. Задается только для таблицы. |
Foreign_Keys_ Counter | L_BYTE | 11 | Количество внешних (ссылочных) ключей в объекте. Задается только для таблицы. |
ReadLevel | L_BYTE | 12 | Уровень доступа на чтение (см. документ «Администрирование комплекса средств защиты данных»). Для синонима не задаётся. |
WriteLevel | L_BYTE | 13 | Уровень доступа на запись (см. документ «Администрирование комплекса средств защиты данных»). Для синонима не задаётся. |
CREATION_TIME | DATE | 14 | Дата создания объекта. |
wFlags | L_WORD | 20 | Маска флагов объекта:
|
aInsert | L_BYTE | 22 | Если 1, то протоколируется событие INSERT для представления, если 0 – не протоколируется. |
aUpdate | L_BYTE | 23 | Если 1, то протоколируется событие UPDATE для представления, если 0 – не протоколируется. |
aSelect | L_BYTE | 24 | Если 1, то протоколируется событие SELECT для представления, если 0 – не протоколируется. |
aDelete | L_BYTE | 25 | Если 1, то протоколируется событие DELETE для представления, если 0 – не протоколируется. |
Integrity | L_LONG | 26 | Номер страницы целостности для таблицы, идентификатор пользователя – владельца таблицы для синонима. Если тело представления хранится в описании объекта БД, то, начиная с этого поля, идет тело представления. Если представление большое, и его тело хранится отдельно от описания объекта БД в нескольких страницах, то в первой части Integrity (L_WORD) хранится длина тела представления. |
PRIMARY_ID | L_LONG | 30 | Идентификатор атрибута первичного ключа. Для представления, тело которого хранится отдельно от описания объекта БД в одной странице, в этом поле находится номер страницы. Для большого представления, тело которого хранится в нескольких страницах, в этом поле хранится количество страниц, в которых записано тело представления. Для синонима, начиная с этого поля, хранится имя таблицы, для которой создан синоним. |
UNIQUE_ID | L_LONG | 34 | Для таблицы в этом поле хранится количество фразовых индексов, созданных для столбцов таблиц. Для представления, тело которого хранится отдельно от описания объекта БД, в этом поле находится номер файла, где хранится одна или несколько страниц с телом представления. |
CHECK_ID | L_LONG | 38 | Для таблицы в этом поле хранится номер страницы, в котором находится условие CHECK для всей таблицы, или 0, если такое условие не задано. Для большого представления, тело которого хранится отдельно от описания объекта БД в нескольких страницах, начиная с этого поля, хранятся идентификаторы страниц (типа L_LONG), где находятся части тела представления. |
lRotaryRidLimit | L_LONG | 42 | Используется только для таблицы аудита $$$AUDIT для команды SET RECORDS LIMIT. Для остальных таблиц зарезервировано. |
lRotaryCurRid | L_LONG | 46 | Используется только для таблицы аудита $$$AUDIT. Для остальных таблиц зарезервировано. |
Dependence_Id | L_LONG | 50 | Для таблицы задает смещение в байтах в странице Integrity, начиная с которого сначала записано количество ссылок на таблицу (L_WORD), а затем идут пары идентификаторов – идентификатор таблицы (L_LONG) и идентификатор столбца/ключа (L_SWORD). Если последний идентификатор положительный, то это – идентификатор столбца, в противном случае это – отрицательное значение идентификатора ключа. |
Audit | tObjectAudit | 54 | Описание аудита (таблица 49). |
Insert_Triggers | L_BYTE | 78 |
Признак Insert-триггера:
|
Delete_Triggers | L_BYTE | 79 | Признак Delete-триггера:
|
Update_Triggers | L_BYTE | 80 | Признак Update-триггера:
|
GLOBAL | L_BYTE | 81 | Признак глобальности таблицы. Используется для OLTP. |
NMBLONGATRS | L_BYTE | 82 | Количество столбцов таблицы, длина которых превышает 240 байт. |
CKEYCOUNT | L_BYTE | 83 | Количество составных ключей у таблицы. |
Flags | L_BYTE | 84 |
Маска флагов для таблицы:
|
AUTOROWID | L_BYTE | 85 | Номер столбца AUTOROWID таблицы или 0, если такой столбец не задан. |
MAXRID | L_LONG | 86 | Максимальный номер RowId. |
NMBRID | L_LONG | 90 | Число занятых RowId. |
NMBKORS | L_LONG | 94 | Текущее количество записей в объекте. |
LNGKOR | L_WORD | 98 | Длина записи в неупакованном виде. |
NMBEXAS | L_BYTE | 100 | Количество экстентов области индексов. |
NMBEXDT | L_BYTE | 101 | Количество экстентов области данных. |
NMBEXBL | L_BYTE | 102 | Количество экстентов области BLOB-данных. |
LNGPGAS | L_BYTE | 103 | Зарезервировано. Значение по умолчанию равно 1. |
LNGPGDT | L_BYTE | 104 | Зарезервировано. Значение по умолчанию равно 1. |
PCTFREE | L_BYTE | 105 | Определяет процент заполненности для каждой из страниц данных, ниже которого страницы данных считаются незаполненными. Если значение равно 0 или 1, то игнорируется. |
NMRPGCON | L_WORD | 106 | Номер первой страницы конвертера. |
NMRATRBL | L_BYTE | 108 | Номер BLOB-столбца в схеме таблицы. |
BLOBPCT | L_BYTE | 109 | Процент заполнения BLOB-страницы. |
AS[3] | TAS | 110 | Описание экстента области индексов (таблица 50). |
DT[3] | TDT | 122 | Описание экстента области данных (таблица 51). |
BL[3] | TBL | 134 | Описание экстента области BLOB-данных (таблица 52). |
CKEYROWID[3] | L_LONG | 146 | RowId описателя составного ключа в таблице $$$ATTRI. |
CKEYPAGE | L_LONG | 158 | Содержит идентификатор страницы, в которую записываются RowId составных ключей в случае, если их количество превысило 3, и они не помещаются в массиве CKEYROWID. |
EXAS[2] | L_LONG | 162 | В массиве хранятся номера страниц, в которых находятся описания экстентов области индексов, таблица 50. |
EXDT[2] | L_LONG | 170 | В массиве хранятся номера страниц, в которых находятся описания экстентов области данных, таблица 51. |
EXBL[2] | L_LONG | 178 | В массиве хранятся номера страниц, в которых находятся описания экстентов области BLOB-данных, таблица 52. |
CharSet | L_WORD | 186 | Кодировка, используемая по умолчанию при создании столбцов. |
Trigger_Mask | L_WORD | 188 |
Маска флагов заданных для таблицы триггеров:
|
Пример
Получить системные атрибуты пользовательской таблицы AUTO:
select rowid from $$$sysrl where $$$s13='AUTO'; | 127| ! Количество столбцов в таблице select getbyte($$$s14,7) from $$$sysrl where rowid=127; или select getbyte($$$s14,7) from $$$sysrl where rowid = (select rowid from $$$sysrl where $$$s13='AUTO'); | 13| ! Максимальное и текущее количество RowId select getlong($$$s14,86), getlong($$$s14,94) from $$$sysrl where rowid=127; | 1022| 1000| ! Дата создания таблицы select MULTIME(2, getlong($$$S14,14), to_date('01.01.1990','DD.MM.YYYY')) from $$$SYSRL where rowid=127; |29.05.2013:11:52:52.00|
Структура описания аудита БД
В таблице 49 приведена структура описания аудита БД.
Нулевое значение поля показывает, что аудит по данному событию не ведется.
Поле | Тип данных | Протоколируемое событие |
---|---|---|
aInsert | L_BYTE | Добавление записи. |
aUpdate | L_BYTE | Корректировка записи. |
aSelect | L_BYTE | Выборка записи. |
aDelete | L_BYTE | Удаление записи. |
aInsertByProc | L_BYTE | Добавление записи хранимой процедурой. Зарезервировано. |
aUpdateByProc | L_BYTE | Корректировка записи хранимой процедурой. Зарезервировано. |
aSselectByProc | L_BYTE | Выборка записи хранимой процедурой. Зарезервировано. |
aDdeleteByProc | L_BYTE | Удаление записи хранимой процедурой. Зарезервировано. |
aDeleteByRef | L_BYTE | Удаление записи по ссылке. |
aUpdateByRef | L_BYTE | Корректировка записи по ссылке. |
aCreateIndex | L_BYTE | Создание индекса. |
aDropIndex | L_BYTE | Удаление индекса. |
aAlterTableFile | L_BYTE | Добавление/Удаление файла. |
aAlterColumn | L_BYTE | Добавление (модификация) колонки. |
aRenameTable | L_BYTE | Переименование таблицы. |
aRebuildTable | L_BYTE | Пересоздание таблицы. |
aPressTable | L_BYTE | Сжатие таблицы. |
aLockTable | L_BYTE | Блокирование таблицы. |
aUunlockTable | L_BYTE | Разблокирование таблицы. |
aGgrantTable | L_BYTE | Определение привилегии. |
aRrevokeTable | L_BYTE | Отмена привилегии. |
aExecProc | L_BYTE | Выполнение процедур. |
aExecTrig | L_BYTE | Выполнение триггеров. |
Reserved[1] | L_BYTE | Не используется. |
Описание экстента области индексов
В таблице 50 приведена структура экстента области индексов TAS
.
Поле | Тип данных | Содержание |
---|---|---|
NAMDVAS[4] | L_CHAR | Логическое имя устройства, на котором расположен файл области данных. |
NMBPGAS | L_LONG | Количество страниц в экстенте. |
SSBMAS | L_LONG | Слово состояния битовой карты области индексов. Используется 16 битовая маска. Нулевое значение бита показывает, что в странице файла есть свободное место. |
Описание экстента области данных
В таблице 51 приведена структура экстента области данных TDT.
Поле | Тип данных | Содержание |
---|---|---|
NAMDVDT[4] | L_CHAR | Логическое имя устройства, на котором расположен файл области данных. |
NMBPGDT | L_LONG | Количество страниц в экстенте. |
SSBMDT | L_LONG | Слово состояния битовой карты области данных. Используется 16 битовая маска. Нулевое значение бита показывает, что в странице файла есть свободное место. |
Описание экстента области BLOB-данных
В таблице 52 приведена структура экстента области данных TBL
.
Поле | Тип данных | Содержание |
---|---|---|
NAMDVBL[4] | L_CHAR | Логическое имя устройства, на котором расположен файл области BLOB-данных. |
NMBPGBL | L_LONG | Количество страниц в экстенте. |
SSBMBL | L_LONG | Слово состояния битовой карты области BLOB-данных. Используется 16 битовая маска. Нулевое значение бита показывает, что в странице файла есть свободное место. |
Описание дополнительного экстента области индексов, данных и BLOB-данных
В таблице 53 приведена структура дополнительного экстента области индексов, данных и BLOB-данных.
Поле | Тип данных | Содержание |
---|---|---|
NAMDV[4] | L_CHAR | Логическое имя устройства, на котором расположен файл. |
NMBPG | L_LONG | Количество страниц в экстенте. |
SSBM[16] | L_LONG | Слово состояния битовой карты области. Используется 16 битовая маска. Нулевое значение бита показывает, что в странице файла есть свободное место. |