SQL> exec DBMS_UTILITY.EXEC_DDL_STATEMENT('alter system flush shared_pool');
PL/SQL procedure successfully completed
SQL> alter system flush shared_pool;
System altered
SQL>
执行是可以,但是用DBMS_UTILITY.EXEC_DDL_STATEMENT('alter system flush shared_pool'); 调用清理不了shared pool; 只有命令行下执行'alter system flush shared_pool'才有效; 即: SQL> alter system flush shared_pool;
System altered SQL>后shared_pool才能被清理,为啥??
你怎么确认dbms_utility形式没清空sharepool呢?
执行完后; 执行 SQL> select * from v$sgastat where name = 'free memory'; POOL NAME BYTES ----------- -------------------------- ---------- shared pool free memory 65153244 large pool free memory 49777268 java pool free memory 33554432其中shared pool free memory 65153244没有变化,以下是全过程 SQL> exec DBMS_UTILITY.EXEC_DDL_STATEMENT('alter system flush shared_pool');
PL/SQL procedure successfully completed
SQL> select * from v$sgastat where name = 'free memory';
POOL NAME BYTES ----------- -------------------------- ---------- shared pool free memory 65153244 large pool free memory 49777268 java pool free memory 33554432
SQL> alter system flush shared_pool;
System altered
SQL> select * from v$sgastat where name = 'free memory';
POOL NAME BYTES ----------- -------------------------- ---------- shared pool free memory 182859624 large pool free memory 50313820 java pool free memory 33554432
PL/SQL procedure successfully completed
SQL> alter system flush shared_pool;
System altered
SQL>
调用清理不了shared pool; 只有命令行下执行'alter system flush shared_pool'才有效;
即:
SQL> alter system flush shared_pool;
System altered
SQL>后shared_pool才能被清理,为啥??
执行
SQL> select * from v$sgastat where name = 'free memory';
POOL NAME BYTES
----------- -------------------------- ----------
shared pool free memory 65153244
large pool free memory 49777268
java pool free memory 33554432其中shared pool free memory 65153244没有变化,以下是全过程
SQL> exec DBMS_UTILITY.EXEC_DDL_STATEMENT('alter system flush shared_pool');
PL/SQL procedure successfully completed
SQL> select * from v$sgastat where name = 'free memory';
POOL NAME BYTES
----------- -------------------------- ----------
shared pool free memory 65153244
large pool free memory 49777268
java pool free memory 33554432
SQL> alter system flush shared_pool;
System altered
SQL> select * from v$sgastat where name = 'free memory';
POOL NAME BYTES
----------- -------------------------- ----------
shared pool free memory 182859624
large pool free memory 50313820
java pool free memory 33554432
SQL>