Почему я вижу большое количество подключений в V $ SESSION в течение определенного периода времени? - PullRequest
0 голосов
/ 10 июля 2020

Мы настраиваем сервер, на котором клиенты могут создавать запросы и отправлять их на Oracle. Этот сервер может создавать пул и иметь соединения в режиме ожидания. Количество резервных подключений - это то, что мы можем контролировать, и это то, что мы пытаемся настроить. Итак, пока мы настраиваем это минимальное количество подключений в режиме ожидания, мы проверяли таблицу V $ SESSION, чтобы увидеть, какие подключения находятся в режиме ожидания и когда они были активны. В тот момент, когда мы были активными, мы начали видеть, что это количество «соединений» вырастает до 70 или 80 за раз, пока выполняется запрос. Я предполагаю, что это не связи как таковые. Похоже места откуда читает данные ?? Я не уверен и поэтому хотел бы знать. Что это? Они отображаются только при выполнении запроса. Вот запрос, который я использую для проверки oracle того, что делают мои соединения:

select TO_CHAR(s.prev_exec_start, 'DD-MON-YYYY HH24:MI:SS') as "LAST_RAN", s.*
from V$SESSION s
where username = 'MY_USER_NAME';

1 Ответ

0 голосов
/ 10 июля 2020

Было бы полезно, если бы вы могли показать некоторые выходные данные вашего запроса, но вполне возможно, что вы видите параллельные потоки выполнения для некоторых запросов. Они будут создаваться автоматически для обработки требований параллельной обработки и обычно имеют имена процессов, такие как 'P000', 'P001', et c.

Уровень параллелизма для запроса может быть определен как часть соответствующего свойства объекта или в подсказках запроса. Короткое внесение изменений на системном уровне в поведение параллельной обработки (см. Документация ) или полное отключение параллельной обработки для этих сеансов - что может полностью снизить производительность запросов - вы мало что можете сделать.

Триггер входа в систему для отключения параллельного выполнения может выглядеть так:

CREATE OR REPLACE TRIGGER APP_SCHEMA_LOGON_TRG
AFTER LOGON ON APP_USER.SCHEMA
BEGIN
    execute immediate 'ALTER SESSION DISABLE PARALLEL QUERY';
END;
/ 
...