데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

점검 부탁드립니다.

예진예랑 2015.02.07 23:35 Views : 2956

외부시스템을 통해 데이터를 서로 주고 받고 있습니다.

외부에서 넘어온 데이터는 A테이블에 정상적으로 업데이트 되고 있는 상황입니다.

A테이블의 데이터를 다시 다른 B테이블에 update를 수행하고 있는데요.

이부분을 JOB 스케쥴을 통해 매 20분마다 설정을 해놓았습니다.


문제점)

JOB스케쥴에서 오류가 나거나 하는 사항은 없는데, 데이터가 일치하지 않는 경우가 아주 간혹(한달에 1~2건정도 )발생합니다.

즉, A테이블에서 B테이블로 업데이트시 A테이블내용은 정상인데, B테이블의 일부 컬럼값이 잘못 들어온 경우입니다.

물론 아주 여러가지 변수사항이 고려될수 있는 부분인데요...

고수분들께 여쭤볼게 있습니다.


위 내용을 요약하자면.....

 1)         외부시스템db------>  A테이블-UPDATE 수행(정상값)

 2)        A테이블 ------> B테이블-UPDATE 수행  <-( 요부분을 20분단위 job 스케쥴러등록)


* 업데이트 되는 데이터양은 많지는 않습니다.

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

테이블이 업데이트 수행중 내부적으로 락이 걸리는걸로 알고 있습니다.

물론 트랜잭션 진행중(아직 커밋되지 않은 상태)일때도 교착상태등등이 발생하여 조회중(SELECT) 지연시간이 발생할수 있다고 생각합니다.


문제는 20분단위 실행되는 수행문(쿼리문)에서 with nolock 힌트를 주고 있습니다. (다른분이 설계하고 프로그램 한 내용입니다만...) 

제 생각에는 위 요약내용이 1번수행 -> 2번수행 이런식으로 시간차를 두고 순차적으로 실행된다면 문제가 없을텐데

리얼타임으로 처리가 되다보니 업데이트 처리되는 양이 적다고 하더라도 1번 수행중 2번의 job스켈쥴러가 20분마다 수행될때

1, 2번이 아주 간혹 겹치다보니 업데이트가 정상적으로 발생하지 않아서 데이터가 틀리지 않나 생각해봅니다.


별거 아닌데 글로 풀어 설명할려니 어렵네요..ㅠ...어렵게 설명드린점 이해하시고 위 상황은

아무리 생각해도 이부분 때문일거라는 생각이드네요.. 리얼타임이다 보니 어떻게 테스트할수 있는게 거의 어려운 상황입니다.


제 판단이 맞다면 조회문,업데이트문(selelct, update)시 nolock 힌트를 빼게 된다면 데이터양이 적더라도 락발생이나 교착상태등의

증상으로 인한 성능저하에 영향이 어느정도 일어날까요?


혹시 제가 판단한게 아닌 다른문제 인지도 여쭤보고 싶습니다.

고수님들 의견좀 듣고 싶습니다.


No. Subject Author Date Views
8533 다른이름으로 mdf,ldf 파일 불러오기(연결) 방법을 알려 주세요. [1] 땅훈 2015.02.09 3130
8532 다른이름으로 mdf, ldf연결하기 땅훈 2015.02.09 2129
8531 트리거 사용 시 복수의 row 처리 방법 [2] HHunny 2015.02.09 3100
8530 한개의 Table의 내용을 2개의 그룹으로 표현하고 싶은데... [3] 냥냥이맘 2015.02.08 3090
» 점검 부탁드립니다. [1] 예진예랑 2015.02.07 2956
8528 SQL JOB 관련해서 질문드립니다. [1] 나는짱이야 2015.02.07 2675
8527 같은 형식의 테이블 합치는 것에 질문인데요 [2] 짬자면굿 2015.02.06 2562
8526 여러 컬럼 중에서 하나라도 값이 있는 경우를 골라내고 싶을 때 [4] 더따뜻한 2015.02.05 4324
8525 엑셀 암호가 걸려있는 상태에서 SELECT 할 수 있는 방법이 있습니까? [2] 양아치베이비 2015.02.05 3322
8524 행을 두개의 열로 바꾸는것?? [4] 클리티에 2015.02.05 3947
8523 접속 오류 - 연결 문자열이 잘못되었습니다 [1] 생초보 2015.02.04 5270
8522 Z governance라는 라이선스에 대한 정보를 얻을 수 있을까요? 운치 2015.02.04 2286
8521 두개의 테이블을 JOIN할 때 질문입니다. [2] 사이드사이드 2015.02.03 2968
8520 Telnet 연결은 되는데 UDL 파일 만들어서 하려고 하면 연결이 안되는 이유 망토가좋아 2015.02.03 3017
8519 누적합계 쿼리 질문입니다. [6] 깨비꼬비 2015.02.03 10926
8518 SQL프로파일러 질문 드립니다. [1] akfflr 2015.02.03 2693
8517 CURSOR 문에서 USE DATABASE 가 잘 안먹어요. ㅠ [4] 더따뜻한 2015.02.03 2664
8516 trigger를 이용하여 프로시저의 로그 이벤트 남기는 중에... [1] 더따뜻한 2015.02.02 2636
8515 GRANT VIEW SERVER STATE TO [사용자명] 관련 [1] 더따뜻한 2015.02.02 2886
8514 쿼리나 프로시저로 테이블의 어느 데이터를 지운 것에 대한 이력 [2] 상남자 2015.02.02 2266





XE Login