Professional Documents
Culture Documents
80894293 Cơ Chế Khoa PDF
80894293 Cơ Chế Khoa PDF
Lock Din t
DML locks (data locks) Bo v d liu, kha trn bng v hng d
liu.
DDL locks (dictionary locks) Bo v cu trc d liu, nh ngha ca cc
table v views.
Internal locks and latches Bo v cu trc c s d liu (v d nh
datafiles), n c thc hin hon ton t
ng.
Oracle t ng chuyn kha bng t mc gii hn thp sang mc gii hn thch hp cao
hn. V d, gi s mt giao tc s dng lnh SELECT vi mnh FOR UPDATE
kha hng trn bng. V kt qu l, n yu cu kha c quyn trn hng v hng chia s
kha bng cho bng. Nu giao tc sau cp nht 1 hay nhiu hng b kha, hng chia
s kha bng c t ng chuyn sang kha hng c quyn.
Oracle khng bao gi kha leo thang. Kha leo thang lm tng ng k kh nng
deadlocks. Hy tng tng cc tnh hung ni m h thng ang c gng leo thang kha
thay cho giao tc T1, nhng khng th bi cc kha ang gi bi T2 cng yu cu kha
leo thang trn cng mt d liu trc khi n tin hnh.
Mt giao tc yu cu cp kha bng khi mt bng thay i trong nhng cu lnh sau:
Insert, Update, Delete, Select with for update, v lock table. Nhng hot ng DML yu
cu kha bng cho 2 mc ch:
Bt k kha bng no ngn chn vic mua li mt kha DDL c quyn trn cng mt
bng v do ngn nga cc hot ng DDL i hi phi c kha , v d mt bng c
th khng c thay i hoc gim nu mt giao tc khng b giam kha bng cho n.
S: share
X: exclusive
Hot ng b cm: Mt kha bng c quyn chia s hng gi bi mt giao tc ngn chn
cc giao tc khc ginh kha thay i trn cng mt bng. Kha bng c quyn chia
s dng cng cm cc giao tc ginh vic chia s, chia s hng c quyn, kha bng c
quyn, v giao tc khc thc hin cc cu lnh sau y:
LOCK TABLE table IN SHARE MODE;
S: share
SELECT
INSERT SELECT ;
UPDATE ;
DELETE ;
Truy vn khng bao gm cu lnh kiu nh:
2.6.2 Default Locking for INSERT, UPDATE, DELETE, and SELECT ... FOR
UPDATE
c trng kha ca cc lnh INSERT, UPDATE, DELETE v SELECT FOR
UPDATE l:
Giao tc cha cc lnh DML c kha hng c quyn, kha trn dng b thay i
bi cu lnh. Cc giao tc khc khng th cp nht hay xa dng b kha cho
n khi giao tc ang kha commits hoc rollback.
Giao tc cha cc lnh DML khng cn c cp kha hng trn bt c hng no
c chn bi mt subquery hay mt truy vn ngm, v d nh trong mnh
WHERE. Mt Subquery hay truy vn ngm trong cu lnh DML l m bo
thng nht vi bt u truy vn.
Mt truy vn trong giao tc c th thy s thay i bi cu lnh DML trc trong
cng mt giao tc, nhng khng th thy s thay i trong cc giao tc khc nu
giao tc bt u sau giao tc ca chnh n (truy vn).
Ngoi ra cc kha hng c quyn cn thit, mt giao tc c cha cu lnh DML
c cp t nht mt kha c quyn trn dng ni m cc dng ny b nh hng.
Nu giao tc cha chng ang gi mt kha SHARE, hay SHARE ROW
EXCLUSIVE, hoc exclusive table cho bng, th kha bng c quyn trn hng
khng c cp. Nu giao tc ang cha gi mt kha bng chia s dng, th
Oracle t ng chuyn kha ny thnh kha bng c quyn dng.
Mt kha chia s DDL c cp trn mt i tng schema cho cc cu lnh DDL bao
gm cc lnh sau y:
Mt kha parse lock c cp trong sut thi gian x l cu lnh SQL v gi cho vng
chia s min l n cn c khai bo trong shared pool.
2.8.1 Latches
Latches kh n gin, C ch tun t ha mc thp bo v d liu c chia s
trong SGA(system global area). V d, Latches bo v danh sch nhng ngi dng ang
truy cp vo c s d liu v bo v cc cu trc d liu m t cc khi (block) trong
vng nh m (buffer cache). Mt my ch hay mt tin trnh nn cp kha latch trong
thi gian ngn trong khi thao tc hay tm kim trn mt trong nh cu trc ny. Vic thc
hin ca latches l iu khin tham s h thng. c bit l vn mt qu trnh s ch
bao lu cho mt latch.
3 Locking PostgreSQL
3.1.1.3 Deadlocks
Vic s dng cc kha r rng c th lm tng kh nng deadlocks. Khi c 2 hay nhiu
giao tc gi kha m giao tc khc cn. V d, nu giao tc 1 gi mt kha exclusive trn
bng A v c gng c mt kha exclusive trn bng B, trong khi giao tc 2 kha
c quyn trn bng B, v mun mt kha Exclusive trn bng A, th lc ny c 2 giao
tc khng th tin hnh.
PostgreSQL t ng pht hin cc tnh hung deadlock v gii quyt chng bng cch
hy b mt trong cc giao tc c lin quan, v cho php cc giao tc khc hon thnh.
(Chnh xc giao tc no s b hy b l kh d on).
Tuy vy khng c ngha l tnh trang b tc s c gii quyt theo cch. Mt giao dch
tm kim cp kha bng, hay kha hng s phi ch i v thi hn cho cc kha m
n xung t. y l mt tng ti cho cc ng dng, khi m c th c nhng giao tc
thc hin rt lu.