Oracle表的分区update卡着,分区表update global indexes引起表阻塞
分區(qū)表update global indexes引起表阻塞
在drop一個(gè)大的分區(qū)表(半年前,未使用)的時(shí)候引起系統(tǒng)阻塞隊(duì)列
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。是否會(huì)阻塞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
證明:可以查詢(xún)其他分區(qū),不會(huì)阻塞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)在有兩個(gè)問(wèn)題沒(méi)明白,希望大家指點(diǎn):
1。既然是TM 6排他鎖,為什么我還可以對(duì)其他分區(qū)進(jìn)行dml操作呢?而且查詢(xún)v$lock卻是是加在表上而不是分區(qū)。理論上好像不通
2.按實(shí)際測(cè)試效果來(lái)說(shuō),確實(shí)不會(huì)阻塞其他分區(qū)的dml,那又是什么引起的系統(tǒng)enqueue等待事件呢?ITL?
總結(jié)
以上是生活随笔為你收集整理的Oracle表的分区update卡着,分区表update global indexes引起表阻塞的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 市值和总资产的区别
- 下一篇: oracle 数据 时间间隔,如何掌握