2011-11-10 2 views
2

테이블로 분할합니다. DB 분할은 모든 테이블이 백 엔드에 있고 프런트 엔드에있는 모든 것이 있다고 가정합니다.MS Access 2003 데이터베이스를 FE

여기 내 문제가 있습니다. 나는 큰 회사에서 일하고 있으며 사람들은 모두 DB를 사용하고 있습니다. 약 60 - 65 명. 일반적으로 4 개 또는 5 개 이상의 동기식.

주 테이블을 공급하는 양식에서 조회 테이블로 사용하는 하나의 정적 테이블이 있습니다. BE에 정적 테이블이 있으면 서버와의 거리에 따라 일부 사람들의 양식로드 시간이 2 분을 초과 할 수 있습니다. FE에이 고정 테이블을 놓으면로드 시간이 4-5 배 더 빠릅니다.

내 질문은; 정적 테이블이 내 데이터베이스에서 다른 부정적인 문제를 일으킬 수 있습니까? 아니면 모든 테이블이 BE가되도록 "권장"되는 것입니까? 저의 정적 인 테이블을 변경해야한다면 새로운 FE를 배포 할 것입니다. 이 건전한 논리인가?

답변

1

물론 그렇습니다. 정적 조회 테이블 일 때마다 매번 백엔드에서로드하는 데 너무 많은 시간이 걸리며 프론트 엔드에 배치하는 것이 좋습니다.

새 프론트 엔드에게 테이블 변경, 당신은 백엔드에 테이블을 둘 수 있었다 때마다, 배포 및 각 프론트 엔드가 시작의 표를 가져가하지 않으려면 :

'run this in the frontend on startup 
DoCmd.DeleteObject acTable, "Your_Table" 
DoCmd.TransferDatabase acImport, "ODBC", ";DATABASE=c:\backend.mdb", acTable, "Your_Table", "Your_Table", False 

(물론

+0

+1 시동시 가져 오기에 대한 제안 사항이 있지만 데이터를 가져 오는 양식을로드하는 데 2 ​​분 이상 걸리면 프런트 엔드로 가져 오기를 실행하면 시작 시간이 크게 느려질 수 있습니다. – Taryn

+0

나는 누군가가 이렇게 말할 것이라고 거의 예상했다. 글쎄, 그것은 달라집니다 :-) 우리는 테이블이 백엔드에있을 때로드하는 데 2 ​​분이 걸리는 주 폼에서 테이블이 얼마나 정확하게 사용되는지 알지 못합니다. 네트워크를 통해 전체 테이블을 가져 오는 것이 쿼리를 실행하는 것보다 빠르다는 것을 알 수 있습니다. 그리고 테이블이 자주 바뀌면 새로운 프론트 엔드를 자주 배포 할 필요가 없다면 더 긴 시작 시간으로 살 수있을 것입니다. 그것 모두는 ... 의존합니다. –

+0

위대한, 의견에 감사드립니다. 그리고 나는 시작시에 조회를 가져 오는 아이디어를 정말 좋아한다. 그것은 큰 테이블은 아니지만 그것을 사용하는 폼은 코드 뒤에 약간의 코드를 가지고 있으며, 링크되어 있기 때문에 속도가 느려집니다. 좋은 생각 ... 고마워! –

1

정적 테이블은 프론트 엔드에있을 수 있습니다. 테이블의 이름과 백엔드 경로를 적절하게 변경해야합니다. 또한 변경되지 않고 "릴리스"의 일부인 모든 테이블을 FE에 포함해야합니다 (예 : 대시 보드 메뉴 테이블).
"로밍"사용자가있는 경우 데이터를 SQL Server로 이동하는 것을 고려해보십시오. 그러면 실제로 네트워크 트래픽을 줄이고 성능을 향상시킬 수 있습니다.

0

나는 FE에서 정적 테이블을 만들 것이다. 나는 이제 사용자에게 엄격하게 제한되고 BE 데이터베이스 내에 저장 될 필요가없는 테이블을 사용하여이를 수행합니다. 그런 다음 새 데이터를 추가해야하는 경우 사용자에게 새로운 FE를 릴리스하면됩니다.

나는 BE의 정적/불필요한 테이블을 가지고 있지 않기 때문에 BE의 유지 보수가 더 쉽다고 생각한다. 나는 그걸로 광산을 만들었고 일부 정적 테이블은 FE 데이터베이스에 갔고 일부는 SQL 서버 데이터베이스에 들어갔다.

정말 유지 보수뿐만 아니라 사용자가 더 쉽게 생각할 수 있는지에 따라 달라집니다.

관련 문제