vb와 mssql로 프로그램을 하고 있습니다.
전임자가 마스터 테이블을 4개로 나누어 만들었던것을
통합해서 하나로 만들었습니다.
그러다보니 필드수나 테이블의 크기가 커졌습니다.
클라이언트수가 20여명 정도 되는데 시간차별로
한사람씩 작업을 하면 제대로 동작을 하는것같은데
여러사람이 동시에 작업을 하면 입력및 삭제등이
제대로 되지않고 데이터가 이상하게 됩니다.
화면에서는 삭제해서 저장을 했는데 다시 조회하면
삭제가 안된채로 다시 조회됩니다.
1. sql문을 조회시 시간이걸리면 뒤에 조회하는 사용자가
계속 조회명령을 주면 Lock이 걸려 트랜잭션이 제대로
안되는것인지 (쿼리문이 오래걸리는것은 3초정도 걸립니다)
2. 마스터 파일이 커서 조회나 수정 삭제가 오래걸려서
뒤사용자가 계속 조회나 수정 삭제를 보내면
Lock 이 걸면 트랜잭션이 제대로 안되는것인지
답변을 부탁드립니다.
답변)
APPLICATION에서 어떻게 저장하는지?
아무래도 마지막 저장할때 APPLICATION에서 보고 있는 상태 모두를 저장하는 듯한데요.
A USER가 리스트를 불러오고, B USER가 불러온 상태에서
A USER가 DATA하나를 지우고 저장
B USER는 그냥 저장 하면 아마도 A가 지운 데이터는 그대로 보이는 상태가 아닌지요..
저장되는 형태가 일괄적으로 저장이 되고 있다면
UPDATE, INSERT의 BLOCK으로 인해 SELECT가 늦어지는 듯합니다.
답변을 주셔서 감사하고 제가 서버프로그램쪽은 처음이라 다시한번 질문드립니다.
INSERT는 필드수와 상관이 없으므로 한번에 저장이 되는데
UPDATE는 화면에 보이는것 모두를 저장하다보니 필드수가 많아 4번으로 나누어
UPDATE를 하고 있습니다.
답변을 주신것으로 보아 수정된것만 저장을 시키면 문제가 해결될수 있는지요....
또 수정된것만 저장을 하려면 어떠한 방슥으로 해야 좋을지 다시한번 답변을 부탁드립니다.
|