안녕하세요.
멀티 쓰레드 환경에서 작업을 해야하는데요.
하나의 DB 에 여러개의 쓰레드에 각각 연결을 맺고 접근을 합니다.
각각의 쓰레드에서 인서트,셀렉트등 읽고 쓰는 작업을 하게 됩니다.
이럴때 작업을 할때 해당 필드에 락을 걸고 작업을 해야 하나요?
아니면 DB에서 내부적으로 스스로 락을 걸고 처리되는것인지 궁금합니다.
transaction의 방식으로 처리하십시요.
transcation은 ms_sql에서는 묵시적 lock이라고 하여
lock이 걸린 것처럼 처리되는 형태가 됩니다.
trans처리를 하였는데도 불구하고 문제가 발생한다면
당연 lock의 처리를 해야겠지요(필히 테스트를 해보세요)
우선 답변 감사드립니다.
그런데, 각 스레드 마다 DB 연결을 시켜놓은 상태로 작업을 하면 내부적으로 동기화 처리가 되지 않는지 궁금합니다.
하나의 DB 에 여러 사용자가 각각 연결을 하여 사용하는것과 다른가요?
각각의 사용자를 쓰레드라고 생각하는것과 다른걸까요?
transaction 은 사용하지 않고 DB 에 바로 select, insert , update, delete 쿼리를 사용할꺼구요.