Если я запрашиваю из представления V $ SQL, включает ли он SQL, который еще работает, но еще не завершен? - PullRequest
1 голос
/ 14 мая 2019

Я выполняю запрос ниже в oracle db.

SELECT program_id, program_line#, sql_text
FROM V$SQL VS ,
     ALL_USERS AU
WHERE (executions >= 1)
  AND (parsing_user_id != 0)
  AND (AU.user_id(+) = VS.parsing_user_id)
  AND UPPER(AU.USERNAME)  IN (UPPER('CARGO'))
ORDER BY last_active_time DESC;

Я просто хотел спросить, включает ли результат, возвращаемый этим запросом, sql, который все еще выполняется, или запрос, для которого истекло время ожидания или отмененпользователь?

1 Ответ

2 голосов
/ 14 мая 2019

Да, V$SQL показывает информацию о запросах, которые все еще выполняются.Из документации Oracle :

V$SQL приведена статистика по общим областям SQL без предложения GROUP BY и содержится по одной строке для каждого дочернего элемента исходного введенного текста SQL.Статистика, отображаемая в V$SQL, обычно обновляется в конце выполнения запроса.Однако для долго выполняющихся запросов они обновляются каждые 5 секунд.Это позволяет легко увидеть влияние долгосрочных операторов SQL, пока они еще находятся в процессе выполнения.

Что касается второй части вашего вопроса, ответ таков: это зависит.Время, в течение которого запрос находится в кэше (где V$SQL собирает информацию), зависит от размера вашего кэша и количества уникальных / уникальных запросов, которые выполняются в любой момент времени.Если в базе данных часто выполняется один и тот же тип запросов (т. Е. Они кэшируются), старые запросы будут оставаться в представлении V$SQL в течение более длительного периода времени, чем в базах данных, где выполняется много различных запросов (при условии, что все остальное).то же самое.) Отдельные запросы, которые еще не сохранены в кеше, добавляются в библиотеку кеша, выталкивая устаревшие / истекшие запросы из кеша.Если вы хотите настроить количество времени, которое запросы проводят в кеше, вам придется настроить размер общего пула.Я бы порекомендовал почитать на кеше библиотеки на https://docs.oracle.com/database/121/TGDBA/tune_shared_pool.htm#TGDBA560

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...