oracle 中的运行脚本创建表的时候突然死机,或者突然断电了,重新打开 运行刚才的脚本 就会卡住 ,这种情况怎么解决
解决方案 »
- oracle sql*plus 登录问题???
- select 语句
- oracle文件的问题
- 求解:SQL Server时间函数在Oralce的使用方法
- ORACLE 异构服务出错????那位大哥有这方面的经验 请指教小弟一下 万分感谢!!
- 关于一个授权很简单的问题
- 我上网搜索过,但找不到答案,也我已经问了很多人,这问题难道没有人能回答一下吗?
- oracle9和oracle8的程序组怎么不同了啊?
- 急急急,,,DBMS_SQL_Execute的问题???
- 将一个表的数据的加入到另一个表实现问题?
- mysql通过federated链接到一个远程表,查询远程表的时候却出现中文乱码,如合解决
- execute immediate使用
数据库一天down几次?跟好玩一样的啊
理论上数据库应该会自动释放,你也可以手动杀掉进程,或者干掉会话
create table G4_table as
select /*+parallel(t,8)*/ t.serv_id,t.region_id,acc_nbr
from v_prd_prod_ins_day_eff@odscpy t ---crm主产品实例(日)
inner join(select tt.serv_id,tt.serial_num,
row_number()over(partition by serial_num order by created desc) rn
from v_crm_mk_asset_day@odscpy tt---crm营销资源
where tt.rec_status=1
and tt.imsi_lte is not null)t1
on t1.serial_num=(case when substr(t.imsi_pid,1,2)='89' then t.imsi_pid else t.sim_nbr end)
and t1.rn=1
where t.rec_status=1
and t.serv_state not in ('1400');
杀掉该会话试试,具体方法
先管理员登录数据库
SELECT
a.object_id, a.session_id, b.object_name, c.*
FROM
v$locked_object a, dba_objects b, v$session c
WHERE a.object_id = b.object_id
AND a.SESSION_ID = c.sid(+);
找到sid和serial#'
alter system kill session 'sid, serial#' ;杀掉会话,再试试能否创建表。
v$locked_object a, dba_objects b, v$session
第一个是查是否有加锁的对象,第三个是所有的打开的会话
v$locked_object a, dba_objects b, v$session
第一个是查是否有加锁的对象,第三个是所有的打开的会话能不能根据这个进程 查出来是哪个查询脚本在运行
v$locked_object a, dba_objects b, v$session
第一个是查是否有加锁的对象,第三个是所有的打开的会话杀掉会话的时候提示 标记要终止的会话
select a.program, b.spid, c.sql_text,c.SQL_ID from v$session a, v$process b, v$sqlarea c where a.paddr = b.addr
and a.sql_hash_value = c.hash_value and a.username is not null;
这个可用于查看某个 pid 对应的 sql :
SELECT sql_text FROM v$sqltext a WHERE (a.hash_value, a.address) IN(SELECT DECODE(sql_hash_value, 0, prev_hash_value, sql_hash_value),DECODE(sql_hash_value, 0, prev_sql_addr, sql_address) FROM v$session b WHERE b.paddr =(SELECT addr FROM v$process c WHERE c.spid = '5389'))ORDER BY piece ASC;
你可以先试试去掉并行,我觉得应该是并行导致了锁表和阻塞