Добрый день!
Есть база 10.2.0.4, на базе есть следующий код:
execute immediate 'begin savepoint SP' || TO_CHAR(op_id) || '; end;';
Сессий на базе больше 1000, в силу чего подобных выражений в v$sql - несколько десятков тысяч.
Есть желание убрать их от туда.
Понятно, что первое, что приходит в голову - убрать эти вызовы, но код не мой и в лучшем случае, что можно сделать - это предложить его переписать как-то по другому.
Попробованные и не удачные решения:
dbms_shared_pool.purge (тупо не убирает его из shared pool, очевидно, потому что он не курсор).
Делать вместо execute immediate dbms_sql.parse/execute/close - не помогает, остается эта дрянь в v$sql, даже, кстати, если сессия давно отключилась.
Гугл/металинк ничего посоветовать не могут.
Что еще можно попробовать?