1. 시스템 작업이 있어 FK 비활성화 후 다시 활성화 하려고 보니, 아이고... 너무 많은 데이터가 들어오는 나머지 FK에 해당하지 않는, 고아 데이터들이 있는지, FK 활성화가 안된다. 오류난다. 으아니챠


2. 데이터 양이 많아 선결시되는 작업이, 미들웨어, web/was STOP 후 데이터를 검색하는 방법뿐이다. 데이터가 너무 많아 검색조차 힘들다. 하위 테이블이 5억건정도 되는듯...


3. 아아... 현 상황은, A테이블에 3개 컬럼이 PK로 걸려있고, 해당 3개 컬럼이 B 테이블의 FK로 걸려있다. A 테이블은 500만건정도 되고, B 테이블은 5억건정도 존재한다.


4. where (AA, BB, CC) not in (select AA, BB, CC from B) 으로 검색 시도. 미쳤다 이건. 안나온다. 인덱스 타는것도 아니고, FULL 스캔중인데... 안나온다.


5. 하다하다 도무지 힘들어서 구글링좀 하고있는데.... 맙소사. 해결법이 FK를 삭제하란다. 이런 1차원적인 사고방식이라니... 운영중인 시스템의 FK를 삭제하라고? 이런 말도안되는 사항은 보류.


--------------------------------------------------------------------------------------------------------------------


1. 포기다. 방법 없다. 그냥 검색하고 기다려본다. 닥치고 기다린다... ㅠㅠ


검색쿼리

select /*+full(b)*/* from b
where not exists (select /*+full(a)*/1 from a where a.AA = b.AA and a.BB=b.BB and a.CC = b.CC)


--------------------------------------------------------------------------------------------------------------------


보니까 대충 20분정도 걸린다.


조회건은 3만건.


그런데... 지금껏 아무도 몰랐던 오류 데이터가 상당하다. 현장에서 이 사항을 먼저 고쳐야 할듯.


후...... 이런 밑바닥에 있는 오류 데이터라니;


--------------------------------------------------------------------------------------------------------------------


현장 조치는 대부분 끝냈다. 


시간이 지연되서 32,000건으로 늘었다만... 초기에나 발생한 데이터가 많고, 많이 조치되서 증가율은 현저히 떨어졌다. 특히 최근에는. 마지막 데이터만 고치고, 트리거를 이용해 해당 데이터를 다른 테이블에 따로 쌓도록 진행했다.


데이터가 추가로 들어오면 정상 진행이 힘들기 때문에 미들웨어 선 종료 후 데이터 삭제


FK 활성화 진행


1시간정도 후에 확인해보니 FK가 활성화되어있다.


이것때문에 몇주를 고생한거지;;;;

블로그 이미지

광훨

,