2011-10-11 2 views
1

나는 이것을 테스트했으며 동일한 응용 프로그램의 여러 응용 프로그램 (또는 동일한 응용 프로그램의 동일한 인스턴스)에서 여러 개의 열린 응용 프로그램을 열 수 있음을 확인했습니다. 데이터베이스에 액세스하고 심지어 많은 시간이 열린 OleDbDataReader도 있습니다.많은 응용 프로그램에서 단일 Ms Access 데이터베이스를 읽고 쓰고 동시에

하지만이게 안전한가요? 특별한주의를 기울여야합니까, 아니면 Jet 엔진이 모든 것을 처리합니까? 같은 테이블에 동시에 쓰는 동안 하나의 데이터 테이블을 읽는다면 어떻게 될까요?

난 그냥 나중에 잡담이나 놀라움에 비틀고 싶지 않아.

답변

2

액세스는 일반적으로 동시 데이터 활동의 엔진이 아닙니다. MySQL이나 Oracle 또는 다른 적절한 RDBMS를 피할 수있는 이유는 무엇입니까?

몇 가지 이유 :

- 읽기 일관된보기가 보장되지 않습니다.
- 모르게 모르게 업데이트 된 레코드를 업데이트 할 가능성이 큽니다.
- 당신은 - 당신이

1

액세스가 동시 사용을 위해 설계되지 않았습니다 중앙 집중식 트랜잭션 관리자가없는 확인할 수없는 잠금
가 발생할 수 있습니다. 다른 데이터베이스를 사용하여 조사해야합니다. Here's은 주제에 대한 훌륭한 기사입니다.

0

직접 응답 질문에 What would happen if I'm reading one data table while writing to the same table at the same time?

은 기본 IsolationLevel에 따라 다름합니다. 격리 수준이란 무엇이며이를 지정하는 방법은 Protecting Your Data Integrity with Transactions in ADO.Net입니다.

다른 제안 사항과 같이 다른 것을 사용하십시오. SQL Server 2008 Express은 무료이며 대부분 무료입니다. 서버 소프트웨어를 설치하지 않고도 데이터베이스를 사용할 수 있기를 원한다면 Access를 통해 SQL Server Compact Edition을 권하고 싶습니다.

0

로컬 네트워크에서 사용되는 "사용자가 입력 할 수있는 데이터가 더 이상 없습니다"라는 5 ~ 10 명의 사용자 (각 연결마다 1 개)는 개인적인 경험이 있습니다. 백엔드. 이 문서 내 개인적인 경험을 반영 : 진짜 한계와 당신이 "진짜"클라이언트/서버 데이터베이스 찾아야 지점 사용자 환경의 세부 크게 의존

http://www.tek-tips.com/faqs.cfm?fid=4462

을 - 당신이 알고 싶다면 , 자신의 벤치 마크를 실행해야합니다.

테이블에 대한 동시 읽기/쓰기 : 액세스는 충돌을 처리하기 위해 기본 파일 시스템의 바이트 범위 잠금 기능을 사용합니다 (자세한 내용은 http://en.wikipedia.org/wiki/File_locking 참조). 이 메커니즘은 NTFS와 같은 대부분의 최신 파일 시스템에서 작동하지만 많은 사용자에게 확장되지 않습니다.

관련 문제