Я следующий запрос, который отслеживает, если кто-то попытается войти с техническими пользователями базы данных:
SELECT COUNT (OS_USERNAME)
FROM DBA_AUDIT_SESSION
WHERE USERNAME IN ('USER1','USER2','USER3')
AND TIMESTAMP>=SYSDATE - 10/(24*60)
AND RETURNCODE !='0'
К сожалению, производительность этого SQL довольно беден так как он TABLE ACCESS FULL
на sys.aud $. Я попытался сузить его с помощью:
SELECT COUNT (sessionid)
FROM sys.aud$
WHERE userid IN ('USER1','USER2','USER3')
AND ntimestamp# >=SYSDATE - 10/(24*60)
AND RETURNCODE !='0'
and action# between 100 and 102;
И это еще хуже. Возможно ли вообще оптимизировать этот запрос, заставляя оракул использовать индексы здесь? Я был бы признателен за любую помощь. & советов.
Спасибо. Я дам ему попробовать! – mc88