Oacle 잠 금 대기 / 잠 금 원인 분석
2857 단어 Oacle
-- 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。해결 방법
표 의 외 키 에서 색인 을 만 드 는 것 도 외 키 를 사용 하 는 추천 방식 입 니 다.
이렇게 하면 위 에서 발생 한 문 제 를 피 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 작업 은 Clob 또는 NClob 데이터 형식의 저장 프로 세 스 인 스 턴 스 를 포함 합 니 다.텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.