Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> what's mean of "enqueue hash chains" latch?
hello;
We have a Oracle 8.1.7.0.0 Database on Solaris8. With a parallel insert , database slow down heavy suddently.
I find lots of latch wait in database,from statspack(with 15 minutes elapse) list:
Pct Avg Pct Get Get Slps NoWait NoWait Latch Name Requests Miss /Miss Requests Miss ----------------------------- -------------- ------ ------ ------------ ------ active checkpoint queue latch 260 0.0 0 cache buffers chains 47,228,551 0.0 552 0.0 checkpoint queue latch 3,263 0.0 0 dml lock allocation 46,899,746 12.1 0.0 0 enqueue hash chains 46,899,333 39.2 0.0 0 enqueues 849 0.0 0 job_queue_processes parameter 12 0.0 0 ktm global data 2 0.0 0 library cache 32,739 0.0 0.0 0 library cache load lock 70 0.0 0 list of block allocation 36 0.0 0
and
Latch Sleep breakdown for DB: QCB Instance: qcb Snaps: 150 -151
-> ordered by misses desc
Get Spin & Latch Name Requests Misses Sleeps Sleeps 1->4 -------------------------- -------------- ----------- ----------- ------------ enqueue hash chains 46,899,333 18,367,985 6,312 18361675/630 8/2/0/0 dml lock allocation 46,899,746 5,678,834 1,228 5677606/1228 /0/0/0 -------------------------------------------------------------Latch Miss Sources for DB: QCB Instance: qcb Snaps: 150 -151
NoWait Waiter Latch Name Where Misses Sleeps Sleeps ------------------------ -------------------------- ------- ---------- ------- dml lock allocation ktaiam 0 615 444 dml lock allocation ktaidm 0 604 784 enqueue hash chains ksqrcl 0 3,778 3,453 enqueue hash chains ksqgtl3 0 2,472 2,832 -------------------------------------------------------------
I can not find more info about "enqueue hash chains". What' s it mean and how to reduce it ?
The SQL of parallel insert is :
insert /*+ append parallel(fc_costgatherresult_m,4) */ into
fc_costgatherresult_m
(kjnd,kjqj,pk_dwbm,pk_deptdoc,pk_psndoc,isproduct,pk_productorbalance,accountcurrtype,producttype,pk_costitem,originaldwbm,originaldept,calmny,pk_client,clienttype,pk_credittype)
select /*+ parallel(fc_costcalresult_m,4) */
'2004','11',pk_dwbm,pk_deptdoc,pk_psndoc,isproduct,pk_productorbalance,accountcurrtype,producttype,pk_costitem,originaldwbm,originaldept,sum(calmny),pk_client,clienttype,pk_credittype
from fc_costcalresult_m where pk_dwbm = originaldwbm
group by pk_dwbm,pk_deptdoc,pk_psndoc,isproduct,pk_productorbalance,accountcurrtype,producttype,pk_costitem,originaldwbm,originaldept,pk_client,clienttype,pk_credittype
All the table is partition table.
Table fc_costcalresult_m with nearly 40G data.
And we have the parameter:
dml_locks = 2000
enqueue_resources = 2200
I also want to know why "dml lock allocation" Requests is so high?
Any suggestion is appreciate.
-- http://www.freelists.org/webpage/oracle-lReceived on Sat Jan 08 2005 - 07:53:30 CST
![]() |
![]() |