안녕하세요..
제가 생각하기엔 트리거 외엔 방법이 없을거 같은데 혹시
좋은 방법이 있으면 한수 가르쳐 주시기 바랍니다.
A라는 서버가 있습니다. (IP : 123.123.123.123) mssql2000
B라는 서버가 있습니다. (IP : 124.124.124.124) mssql2005
A와 B 서버는 물리적으로 다른 위치에 존재하고 있습니다.
A서버에서 특정 데이터가 들어올경우
B서버에 BBB 테이블에 insert를 합니다.
-B서버 입력데이터 예
'0001', '일동이'
'0002', '이동이'
'0010', '십동이'
그럼 B 서버에서 신규데이터가 들어온걸 인지 하고
CCC 테이블의 정보와 BBB에서 방금 들어온 데이터를 조인걸에
결과 값을 처리 해줍니다.
이렇게 A서버에서 B서버로 데이터가 들어왔다는 것을
바로 알수 있는 것이 트리거 아닌가요?
1. 트리거외에 BBB 테이블에 데이터가 들어 왔다는 것을 실시간으로 인지할수 있는 방법이 있는지요?
2. A서버에서 동시에 B서버로 10건의 데이터가 입력되었을 경우 트리거로 처리시 시간지연이 있을수 있을까요?
3. A서버에서 B서버로 데이터를 받고 받은 데이터를 CCC 테이블과 조인한 결과를 2.5초 이내로 처리가 되어야 하는데
10건의 데이터가 동시에 들어왔을 경우 2.5초 이내로 가능할까요?
4. 어떤분은 트리거 이용시 데이터 정확성이 떨어진다는 말씀을 하시더라구요.
예를 들어 10건의 데이터가 동시에 들어 왔을 경우 몇건은 유실될수 있다는...
트리거가 정확성이 떨어지는지요?
좋은 방법이 아낌없는 조언 부탁드립니다.
감사합니다.
Comment 3
-
Terry
2015.10.15 16:37
-
호짱
2015.10.15 16:44
상세한 답변 감사드립니다.
Linked Server는 처음 알게되었습니다. 자료를 찾아 봐야 할것 같네요...
트리거 외엔 방법이 없는데 시간이 걸리다면 문제가 되긴 하네요..
답변 감사드립니다.
트리거와 Linked Server 자료를 찾아 봐야 겠습니다.
-
minsouk
2015.10.15 23:51
살다가 트리거에서 데이터 빠진다는 소리 처음 들어 봅니다. 누군지 정말 궁금하지만 알고 싶지는 않습니다. ^^;;;
5000 건 정도는 가능할듯 한데......full scan 이 들어가고 이러면 힘들겠지요...
저도 초보지만 아는 한도내에서 댓글답니다.
1. 트리거외에 BBB 테이블에 데이터가 들어 왔다는 것을 실시간으로 인지할수 있는 방법이 있는지요?
-> 트리거가 제일 좋을듯합니다.
A 서버 AAA 테이블과 B 서버 BBB 테이블에 Trigger 추가를 하심이..
2. A서버에서 동시에 B서버로 10건의 데이터가 입력되었을 경우 트리거로 처리시 시간지연이 있을수 있을까요?
-> 지연은 발생합니다.
같은 네트워크 망이 아닌, 다른 네트워크망일 경우 처리속도는 인터넷속도와 연관성이 큽니다.
시나리오) 1) A 서버의 AAA 테이블에 Data Insert
2) A 서버의 AAA 테이블의 Trigger 를 통해 B 서버의 BBB 에 Data Insert
3) B 서버의 BBB 테이블의 Trigger 이벤트 발생
4) B 서버의 BBB 테이블과 CCC 테이블 Join
결과) A 서버에서는 2번의 Insert ( B서버의 경우는 Linked Server 로 처리가 될것으로 예상됨 )
B 서버에서도 2번의 Insert 가 발생하겠죠.. ( Join 해서 Data Insert 한다고 가정시 )
3. A서버에서 B서버로 데이터를 받고 받은 데이터를 CCC 테이블과 조인한 결과를 2.5초 이내로 처리가 되어야 하는데
10건의 데이터가 동시에 들어왔을 경우 2.5초 이내로 가능할까요?
-> 이것도 확답을 드리기가 어렵습니다..-_-;;; 여러 변수가 많이 있기에..
일단 트리거를 사용하시게 되면, 처리시간은 늘어날수 밖에 없습니다.
또한 트리거내에서 조건을 걸거나, Linked Server 에 바로 Insert 를 한다거나
하는 경우 처리시간은 더욱 늘어나겠지요..
초보라 덧글도 허접하네요 ㅠ_ㅠ
다른 고수분들이 자세히 답변주실겁니다..-_-;;;