Oracle表的分区update卡着,分区表update global indexes引起表阻塞
分區(qū)表update global indexes引起表阻塞
在drop一個大的分區(qū)表(半年前,未使用)的時候引起系統(tǒng)阻塞隊列
alter table agent_log truncate partition al_200710 update global indexes;
select event,wait_time from v$session_wait;
EVENT? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? WAIT_TIME
---------------------------------------------------------------- ----------
pmon timer? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
rdbms ipc message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?0
ges remote message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
gcs remote message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
gcs remote message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
gcs remote message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
gcs remote message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
db file parallel write? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?-1
db file parallel write? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?-1
rdbms ipc message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?0
rdbms ipc message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?0
EVENT? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? WAIT_TIME
---------------------------------------------------------------- ----------
smon timer? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
rdbms ipc message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?0
rdbms ipc message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?0
rdbms ipc message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?0
rdbms ipc message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?0
rdbms ipc message? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
EVENT? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? WAIT_TIME
---------------------------------------------------------------- ----------
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
SQL*Net message to client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?-1
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
EVENT? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? WAIT_TIME
---------------------------------------------------------------- ----------
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
db file sequential read? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
EVENT? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? WAIT_TIME
---------------------------------------------------------------- ----------
jobq slave wait? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
EVENT? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? WAIT_TIME
---------------------------------------------------------------- ----------
jobq slave wait? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
global cache null to x? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
enqueue? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 0
EVENT? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? WAIT_TIME
---------------------------------------------------------------- ----------
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
row cache lock? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?0
SQL*Net message from client? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???0
71 rows selected.
session 1:
SQL> SELECT DISTINCT SID FROM V$MYSTAT;
SID
----------
15
Elapsed: 00:00:00.18
SQL>??alter table agent_log truncate partition al_200710 update global indexes;
session 2:
select sid,id1,id2,type,lmode from v$lock where sid=15;
15? ???327685? ???947677 TX? ?? ?? ? 6
15? ?? ?57127? ?? ?? ? 0 TM? ?? ?? ? 6
15? ?? ?19465? ?? ?? ? 0 TM? ?? ?? ? 3
1。是否會阻塞select?
session 1:
SQL> select count(*) from agent_sale_log partition (asl_200801);
COUNT(*)
----------
93129
Elapsed: 00:00:02.24
SQL> alter table agent_sale_log truncate partition asl_200801 update global indexes;
session 2:
select * from??agent_sale_log partition (asl_200712) where rownum<2
-------------------------------------------------------------------------------------------------------------------------
ESALES_ACCOUNT? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?SEQUENCE_ID
---------------------------------------------------------------------------------------------------- -----------
125131709? ?? ?365876 Y? ?? ?? ? 1? ?? ? 16.7? ???-17.38? ?? ?? ?? ? -17.52? ?? ?? ???20? ?? ?? ???427996
202.99.201.132 | 202.152.180.34
2007-12-01 00:04:06
13700539513
1128433? ?? ?? ?? ? 2
3?3?|£?
3??o?o13700539513,3??£o2,3??
-.09
86362? ?? ?? ?-17.2? ?? ?? ? 4? ?? ?? ?90? ?? ?? ?? ? 80711? ?? ?? ?80731? ?? ?? ? 0? ?? ?? ???0
bbvvssqqsfa? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? 2.0071E+17
Elapsed: 00:00:00.01
證明:可以查詢其他分區(qū),不會阻塞select
可以delete嗎?
session 1:
SQL> alter table AGENT_LOG truncate partition AL_200710 update global indexes;
session 2:
SQL> SQL>??delete from AGENT_LOG partition (AL_200709) where rownum<2;
1 row deleted.
Elapsed: 00:00:00.12
SQL>
證明可以dml其他分區(qū)
SQL> delete from AGENT_LOG partition (AL_200710) where rownum<2;
^C
delete from AGENT_LOG partition (AL_200710) where rownum<2
*
ERROR at line 1:
ORA-01013: user requested cancel of current operation
Elapsed: 00:00:07.73
truncate分區(qū)不能dml,阻塞
SQL> select sid,serial#,locked_mode from all_objects o,v$locked_object l,v$session s
2??where o.object_id=l.object_id
3??and l.session_id=s.sid
4??and object_name like 'AL_200710';
no rows selected
Elapsed: 00:00:00.07
SQL> select sid,serial#,locked_mode from all_objects o,v$locked_object l,v$session s
2??where o.object_id=l.object_id
3??and l.session_id=s.sid
4??and object_name like 'AGENT_LOG';
SID? ? SERIAL# LOCKED_MODE
---------- ---------- -----------
22? ?? ?54626? ?? ?? ???3
22? ?? ?54626? ?? ?? ???3
15? ?? ?36648? ?? ?? ???3
15? ?? ?36648? ?? ?? ???6
Elapsed: 00:00:00.00
現(xiàn)在有兩個問題沒明白,希望大家指點:
1。既然是TM 6排他鎖,為什么我還可以對其他分區(qū)進(jìn)行dml操作呢?而且查詢v$lock卻是是加在表上而不是分區(qū)。理論上好像不通
2.按實際測試效果來說,確實不會阻塞其他分區(qū)的dml,那又是什么引起的系統(tǒng)enqueue等待事件呢?ITL?
總結(jié)
以上是生活随笔為你收集整理的Oracle表的分区update卡着,分区表update global indexes引起表阻塞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。