1、进行表分析
目的:有些表索引或者其他有更新,但是未进行表分析可能出现索引未生效,执行计划效果不行
exec dbms_stats.gather_table_stats(ownname => '用户名',tabname => '表名(大写)',estimate_percent => 10,method_opt=> 'for all indexed columns') ;
2、查找库里有哪些锁表,进行kill掉,如需查明细,调整为select * 语句
select 'alter system kill session ',''''||trim(t2.sid)||','||trim(t2.serial#)||''';'
from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time;
3、根据锁表情况看是具体哪个sql锁了
select SQL_TEXT,SQL_FULLTEXT,SQL_ID,LOADS,FIRST_LOAD_TIME,PLSQL_EXEC_TIME,JAVA_EXEC_TIME,ROWS_PROCESSED,COMMAND_TYPE,PARSING_USER_ID,PARSING_SCHEMA_ID,PARSING_SCHEMA_NAME,KEPT_VERSIONS,ADDRESS,SERVICE,MODULE,MODULE_HASH,ACTION,CPU_TIME,ELAPSED_TIME,OUTLINE_SID,CHILD_ADDRESS,SQLTYPE,REMOTE,OBJECT_STATUS,LITERAL_HASH_VALUE,LAST_LOAD_TIME,PROGRAM_ID,PROGRAM_LINE#,LAST_ACTIVE_TIME
from v$sql where sql_id='9tz7kd5c39g9w'
上面这个 sql_id 条件的值:9tz7kd5c39g9w 是通过v$session表查到的SQL_ID