Oacle 잠 금 대기 / 잠 금 원인 분석

2857 단어 Oacle
1。시 뮬 레이 션 잠 금 1.1。주표
-- Create table
create table WDZ1
(
  WDZ1ID NUMBER not null,
  MEMO   VARCHAR2(20)
)
;
alter table WDZ1
  add constraint XXXXXX primary key (WDZ1ID);
 
1。2。표 에서 (외 건 색인 없 음)
-- Create table
create table WDZ2
(
  WDZ2ID NUMBER not null,
  WDZ1ID NUMBER,
  MEMO   VARCHAR2(20)
)
;
-- Create/Recreate primary, unique and foreign key constraints 
alter table WDZ2
  add constraint XXXXX primary key (WDZ2ID)
;
alter table WDZ2
  add constraint XXX foreign key (WDZ1ID)
  references WDZ1 (WDZ1ID);
 
1。3。데이터 시트 를 시트 에 삽입 합 니 다.
begin
insert  into wdz1 values (1,'aa');
insert  into wdz1 values(2,'aa2');
insert  into wdz1 values (3,'aa3');

insert into wdz2 values(10,3,'wdz3--1');
commit;
end;
 
1。4。데이터베이스 seeesion 에 표 에 숫자 를 삽입 하지만 사 무 를 제출 하지 않 습 니 다.
begin
  update wdz2  set memo='update wdz2 momo'

   where wdz2id=10;

insert into wdz2 values(20,2,'wdz2--1');

end;
 
시계 에서 기록 을 삽입 / 수정 할 때 가 하 는 자 물 쇠 는 바로 행 급 자물쇠 이다. 
1。5。다른 데이터베이스 seeesion 에서 메 인 테이블 데 이 터 를 삭제 합 니 다.
delete from wdz1 where wdz1id=1
 
이 때 프로그램 은 표 의 데이터 작업 에 대한 제출 이나 스크롤 백 을 제외 하고 잠 겨 있 습 니 다.
2。구체 적 원인 분석
하나의 데이터 시트 의 외 키 는 주로 세 가지 방식 으로 자신 과 메 인 시트 데이터 의 일치 성 을 유지 합 니 다.
(1)delete cascade
예 는 다음 과 같다.
alter table WDZ2
  add constraint XXX foreign key (WDZ1ID)
  references WDZ1 (WDZ1ID) on delete cascade;
 
(2)Set null
예 는 다음 과 같다.
alter table WDZ2
  add constraint XXX foreign key (WDZ1ID)
  references WDZ1 (WDZ1ID) on delete set null;
 
(3)No action
이것 은 Oacle 외 키 를 사용 할 때 기본 옵션 입 니 다. 
예 는 다음 과 같다.
alter table WDZ2
  add constraint XXX foreign key (WDZ1ID)
  references WDZ1 (WDZ1ID);
 
예전 에 자물쇠 가 생 긴 것 은 주로 우리 가 생각 하 는 것 이다.4。데이터 시트 wdz 2 에 행 급 잠 금 을 가 합 니 다. 그러나 표 (wdz 2) 의 외 건 은 No action 입 니 다. 메 인 시트 (wdz 1) 를 삭제 하면 표 에서 접근 하지 않 고 wdz 2 표 의 기록 을 잠 그 거나 전체 데 이 터 를 표 (wdz 2) 에서 표 급 잠 금 을 가 하지 않 습 니 다.사실 oralce 의 No action 옵션 의 말 그대로 우 리 를 속 였 습 니 다. oracle 은 메 인 테이블 을 삭제 할 때
메 인 시트 의 메 인 키 를 외부 키 로 하 는 모든 데이터 시트 를 찾 아 보고 시 계 를 본다.
이 키 의 색인 이 있 는 지 여부 입 니 다. 없 으 면 시계 에서 시계 급 자 물 쇠 를 추가 합 니 다. 그리고...
시계 에서 전체 시 계 를 스캐닝 하 다.물론 표 에 외부 키 의 색인 이 존재 한다 면 접근 할 것 입 니 다.
표 자체 에 자 물 쇠 를 추가 하지 않 고 대응 하 는 색인 입 니 다.
3。해결 방법
표 의 외 키 에서 색인 을 만 드 는 것 도 외 키 를 사용 하 는 추천 방식 입 니 다.
이렇게 하면 위 에서 발생 한 문 제 를 피 할 수 있다.

좋은 웹페이지 즐겨찾기