Управление трассировкой выполняемых запросов

Функция

Разрешение/запрет трассировки выполняемых запросов.

Спецификация
   
< управление трассировкой >::=
< разрешение трассировки >::=
ON [(ключ)] [ FOR CONNECTION [MESSAGE символьный литерал]]
< запрет трассировки >::=
OFF [FOR CONNECTION]
Синтаксические правила
  1. Максимальная длина < символьного литерала > в опции MESSAGE равна 255 байтов.

  2. Параметр < ключ > задает параметр трассировки. Его значения аналогичны значениям ключа /trace, задаваемого при старте ядра СУБД ЛИНТЕР (см. документ РСКЮ.10010-60 34 01-1 «СУБД ЛИНТЕР. Запуск и останов СУБД ЛИНТЕР в среде ОС Windows», подраздел «Ключи протоколирования работы ядра СУБД» или «СУБД ЛИНТЕР. Запуск и останов СУБД ЛИНТЕР в среде ОС Linux, Unix», подраздел «Ключи протоколирования работы ядра СУБД»). Значения ключа необходимо указывать без пробелов:

    /TRACE=DECOMP=FULL;
    
    /TRACE=DECOMP=DELAY[=< тики >]

    Например,

    set trace on ('/trace=decomp=full');
    set trace on ('/trace=decomp=delay=50');

    Примечание

    Использование фразы /TRACE в тексте ключа является обязательным. В противном случае (например, при выполнении команды SET TRACE ON ('DECOMP=FULL');) на консоль ядра СУБД ЛИНТЕР и в файл linter.out будет выдано сообщение вида: «INFO: Incorrect argument 'DECOMP=FULL' for TRACE command. Ignored.».

  3. Если параметр < ключ > не задан, команда по действию аналогична запуску ядра СУБД с ключом /trace=decomp

    set trace on;

Общие правила
  1. Трассировка выполняется в файл lintrace.log, создаваемый в каталоге БД ЛИНТЕР. Если файл lintrace.log уже существует, трассировочная информация добавляется в конец файла.

  2. Если опция FOR CONNECTION не задана, то устанавливаемый режим трассировки распространяется на все соединения с БД, в противном случае устанавливаемый режим относится только к тому соединению, по которому подана команда.

  3. Установленный режим начинает действовать с момента выполнения команды и распространяется только на вновь открываемые соединения (для текущих открытых соединений режим трассировки не меняется).

  4. Опция MESSAGE определяет пользовательский текст (например, имя трассируемого клиентского приложения), который добавляется в трассировочный файл в начало каждого трассировочного сообщения.

  5. В трассировочный файл < символьный литерал > опции MESSAGE записывается в кодировке ASCII (для ОС типа Windows) и КОИ-8 (в ОС типа UNIX).

  6. При повторном выполнении команды SET TRACE ON без отключения трассировки с новыми значениями параметров старые параметры трассировки будут заменены новыми, а сам файл lintracel.log переоткрыт не будет.

set trace on ('/trace=decomp=(full)');
select count(*) from auto where personid < = 21;

  Трассировочная информация:
C#3 QUERY:
  SELECT
    COUNT(*)
  FROM
    < TABLE "SYSTEM"."AUTO" AS T_0 >
  WHERE
    T_0."PERSONID" < = 21;
C#3 DECOMP.C (Start_Cur_Dec): Now computing derived set #0.
C#3 OBRSTRAT.C (OBRSTRAT): Start set: TABLE("SYSTEM"."AUTO" AS T_0). Set
 included 1461 rows.
    List of predicates:
    Predicate [strategy #2(one index)]:
  T_0."PERSONID" < = 21
C#3 PROZA.C (PROZA): Strategy: #2(by indexes).
C#3 ODINKL.C (ODINKL): Snap_Bv: 21 rows.
    Predicate [strategy #2(one index)]:
  T_0."PERSONID" < = 21
C#3 DECOMP.C (Compute_Group): Get answer from start set. Start set:
 TABLE("SYSTEM"."AUTO" AS T_0).
    Rows count: 21.
C#3 DECOMP.C (End_Dekart): Derived set #0 is computed, Rows count: 1.
C#3 FORMOTW.C (FORMOTW): Read: 5 blocks, write: 3 blocks.
 Additional statistics for read blocks:
  converter 1,index 2,data 1,work 0,sorting 0,blob 0,other 0.
C#3 FORMOTW.C (FORMOTW): Read logical: 22 blocks, write logical: 0 blocks.
C#3 FORMOTW.C (FORMOTW): Journal read: 1 blocks, written: 3 blocks.
C#3 FORMOTW.C (FORMOTW): Time of query execution: 00:00:00:00.10