SQL Reference

EXPLAIN_DIAGNOSTIC: Новая таблица объяснения

Таблица EXPLAIN_DIAGNOSTIC содержит записи для каждого диагностического сообщения, сгенерированного для конкретного экземпляра объясненного оператора в таблице EXPLAIN_STATEMENT.

Табличная функция EXPLAIN_GET_MSGS запрашивает таблицы объяснения EXPLAIN_DIAGNOSTIC и EXPLAIN_DIAGNOSTIC_DATA и возвращает форматированные сообщения.

Табл. 39. Таблица EXPLAIN_DIAGNOSTIC
Имя столбца Тип данных Допустимость пустых значений Ключ 1 Описание
EXPLAIN_REQUESTER VARCHAR(128) Нет PK, FK ID авторизации пользователя, потребовавшего объяснение.
EXPLAIN_TIME TIMESTAMP Нет PK, FK Время запуска требования объяснения.
SOURCE_NAME VARCHAR(128) Нет PK, FK Имя выполняемого пакета при объяснении динамического оператора или имя исходного файла при объяснении статического оператора SQL.
SOURCE_SCHEMA VARCHAR(128) Нет PK, FK Схема или спецификатор источника требования объяснения.
SOURCE_VERSION VARCHAR(64) Нет PK, FK Версия источника требования объяснения.
EXPLAIN_LEVEL CHAR(1) Нет PK, FK Уровень информации объяснения, к которой относится эта строка.

Допустимые значения:

  • O: Исходный текст (как он был введен пользователем)
  • P: Выбор плана (PLAN SELECTION)
STMTNO INTEGER Нет PK, FK Номер оператора в пакете, к которому относится эта информация объяснения. Для динамических операторов SQL имеет значение 1. Для статических операторов SQL это значение совпадает со значением в производной таблице каталога SYSCAT.STATEMENTS.
SECTNO INTEGER Нет PK, FK Номер раздела в пакете, содержащем этот оператор SQL. Для динамических операторов SQL этот номер раздела указывает раздел для этого оператора во время выполнения. Для статических операторов SQL это значение совпадает со значением в производной таблице каталога SYSCAT.STATEMENTS.
DIAGNOSTIC_ID INTEGER Нет PK ID диагностики для конкретного экземпляра оператора в таблице EXPLAIN_STATEMENT.
CODE INTEGER Нет Нет Уникальный номер, назначенный каждому сообщению диагностики. API сообщений может использовать этот номер для получения полного текста диагностического сообщения.

  1. PK означает, что столбец является частью первичного ключа; FK означает, что столбец является частью внешнего ключа.

EXPLAIN_DIAGNOSTIC_DATA: Новая таблица объяснения

Таблица EXPLAIN_DIAGNOSTIC_DATA содержит маркеры сообщений для конкретных диагностических сообщений, записанных в таблице EXPLAIN_DIAGNOSTIC. Маркеры сообщений содержат дополнительную информацию о выполнении оператора SQL, для которого сгенерировано сообщение.

Табличная функция EXPLAIN_GET_MSGS запрашивает таблицы объяснения EXPLAIN_DIAGNOSTIC и EXPLAIN_DIAGNOSTIC_DATA и возвращает форматированные сообщения.

Табл. 40. Таблица EXPLAIN_DIAGNOSTIC_DATA
Имя столбца Тип данных Допустимость пустых значений Ключ 1 Описание
EXPLAIN_REQUESTER VARCHAR(128) Нет FK ID авторизации пользователя, потребовавшего объяснение.
EXPLAIN_TIME TIMESTAMP Нет FK Время запуска требования объяснения.
SOURCE_NAME VARCHAR(128) Нет FK Имя выполняемого пакета при объяснении динамического оператора или имя исходного файла при объяснении статического оператора SQL.
SOURCE_SCHEMA VARCHAR(128) Нет FK Схема или спецификатор источника требования объяснения.
SOURCE_VERSION VARCHAR(64) Нет FK Версия источника требования объяснения.
EXPLAIN_LEVEL CHAR(1) Нет FK Уровень информации объяснения, к которой относится эта строка.

Допустимые значения:

  • O: Исходный текст (как он был введен пользователем)
  • P: Выбор плана (PLAN SELECTION)
STMTNO INTEGER Нет FK Номер оператора в пакете, к которому относится эта информация объяснения. Для динамических операторов SQL имеет значение 1. Для статических операторов SQL это значение совпадает со значением в производной таблице каталога SYSCAT.STATEMENTS.
SECTNO INTEGER Нет FK Номер раздела в пакете, содержащем этот оператор SQL. Для динамических операторов SQL этот номер раздела указывает раздел для этого оператора во время выполнения. Для статических операторов SQL это значение совпадает со значением в производной таблице каталога SYSCAT.STATEMENTS.
DIAGNOSTIC_ID INTEGER Нет PK ID диагностики для конкретного экземпляра оператора в таблице EXPLAIN_STATEMENT.
ORDINAL INTEGER Нет Нет Позиция маркера в полном тексте сообщения.
TOKEN VARCHAR(1000) Да Нет Маркер сообщения для вставки в полный текст сообщения; может быть усечен.
TOKEN_LONG BLOB(3M) Да Нет Более подробная информация (если доступна).

  1. PK означает, что столбец является частью первичного ключа; FK означает, что столбец является частью внешнего ключа.

Схема, используемая возможностью объяснения

При задании заполняемых таблиц объяснения функция объяснения использует в качестве схемы следующие ID:

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

Если в данной схеме не найдено таблиц объяснений, функция объяснения пытается найти таблицы объяснения в схеме SYSTOOLS и использовать их.

Строчные представления значений даты и времени

Строки времени

Строчные представление времени - это строка, начинающаяся с цифры и имеющая длину не менее 4 символов. Строка может оканчиваться пробелами; ноль в начале числа часов можно опускать; секунды можно опустить полностью. Если секунды опущены, считается, что неявно задано 0 секунд. Таким образом, 13:30 эквивалентно 13:30:00.

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

Табл. 41. Форматы строчного представления времени
Имя формата Аббревиатура Формат времени Пример
Международная организация по стандартизации ISO чч.мм.сс 13.30.05
Американский стандарт IBM USA чч:мм AM или PM 1:30 PM
Европейский стандарт IBM EUR чч.мм.сс 13.30.05
Японский промышленный стандарт н.э. JIS чч:мм:сс 13:30:05
Стандарт узла LOC Зависит от кода территории прикладной программы -

Начиная с Версии 8.2, "AM" и "PM" можно задавать и в нижнем, и в верхнем регистре.

[ Начало страницы |Страница назад | Страница вперед | Содержание ]