2011-04-29 35 views
6

Tôi có cơ sở dữ liệu Access chứa thông tin về mọi người (hồ sơ nhân viên và thông tin liên quan). Giao diện người dùng có giao diện giống như giao diện điều khiển duy nhất giúp sửa đổi một loại dữ liệu tại một thời điểm (chẳng hạn như mức độ học vấn từ một biểu mẫu, thông tin liên hệ từ một biểu mẫu khác). Nó hiện được liên kết với nhiều kết thúc sau (một cho mỗi loại dữ liệu, và một cho thông tin hồ sơ cơ bản). Tất cả các tệp được đặt trên một mạng chia sẻ và nhiều đầu cuối được mã hóa.Cơ sở dữ liệu MS Access trên mạng chậm: Có nhanh hơn khi tách riêng các đầu cuối không?

Lý do tôi đã làm đó là tôi hiểu rằng MS Access phải kéo toàn bộ tệp cơ sở dữ liệu vào máy tính cục bộ để thực hiện bất kỳ truy vấn hoặc cập nhật nào, sau đó đặt bất kỳ dữ liệu đã thay đổi nào trở lại trên mạng chia sẻ. Lý thuyết của tôi là nếu một người đang thay đổi số điện thoại hoặc địa chỉ (thông tin liên lạc), họ sẽ chỉ phải kéo/sửa đổi/thay thế cơ sở dữ liệu thông tin liên lạc, thay vì kéo một cơ sở dữ liệu lớn chứa thông tin liên lạc, dự án, bằng cấp , vv chỉ để thay đổi một số điện thoại, do đó làm giảm khả năng bị khóa cơ sở dữ liệu và lưu lượng mạng khi nhiều người dùng đang truy cập dữ liệu.

Đây có phải là kết luận lành mạnh không? Tôi hiểu lầm rất nhiều? Tôi có thiếu cái gì khác không?

Tôi nhận thấy có sự cân nhắc về chi phí với mỗi tệp, nhưng tôi không biết tác động lớn đến mức nào. Nếu tôi đã củng cố các đầu cuối, thì cũng có lợi ích tiềm năng của việc có thể cho phép Access xử lý tính toàn vẹn tham chiếu cho các ... Điện thoại

Tôi đánh giá cao mọi suy nghĩ hoặc (phê bình hợp lý) phê bình.

+0

Có lẽ không có nhiều trợ giúp, nhưng tôi đã chuyển sang MySql. Dễ dàng hơn nhiều để làm việc với. –

Trả lời

8

Đây là một hiểu lầm phổ biến:

MS Access có để kéo toàn bộ tập tin cơ sở dữ liệu vào máy tính địa phương để thực hiện bất kỳ thắc mắc hoặc cập nhật

xem xét truy vấn này:

SELECT first_name, last_name 
FROM Employees 
WHERE EmpID = 27; 

Nếu EmpID được lập chỉ mục, công cụ cơ sở dữ liệu sẽ đọc đủ chỉ mục để tìm các hàng trong bảng nào khớp với nhau, sau đó đọc các hàng phù hợp. Nếu chỉ mục bao gồm một ràng buộc duy nhất (nói EmpID là khóa chính), việc đọc sẽ nhanh hơn. Công cụ cơ sở dữ liệu không đọc toàn bộ bảng, thậm chí cả toàn bộ chỉ mục.

Nếu không có chỉ mục trên EmpID, công cụ sẽ thực hiện quét toàn bộ bảng nhân viên --- có nghĩa là phải đọc mọi hàng từ bảng để xác định giá trị nào phù hợp với giá trị EmpID.

Nhưng dù bằng cách nào, công cụ không cần đọc toàn bộ cơ sở dữ liệu ... Bảng khách hàng, khoảng không quảng cáo, bán hàng, v.v ... không có lý do gì để đọc tất cả dữ liệu đó.

Bạn đúng là có phí cho kết nối với các tệp cơ sở dữ liệu phía sau. Động cơ phải quản lý tệp khóa cho từng cơ sở dữ liệu. Tôi không biết tầm quan trọng của tác động đó. Nếu đó là tôi, tôi sẽ tạo một cơ sở dữ liệu back-end mới và nhập các bảng từ những người khác. Sau đó tạo một bản sao của giao diện người dùng và liên kết lại với các bảng mặt sau. Điều đó sẽ cho bạn cơ hội để kiểm tra tác động hiệu suất trực tiếp.

Dường như với tôi tính toàn vẹn quan hệ nên là một đối số mạnh mẽ cho việc hợp nhất các bảng thành một back-end duy nhất.

Về khóa, bạn không bao giờ cần phải khóa toàn bộ cơ sở dữ liệu phía sau cho các hoạt động DML (INSERT, UPDATE, DELETE) thông thường.Công cụ cơ sở dữ liệu hỗ trợ khóa chi tiết hơn. Ngoài ra bi quan so với khóa cơ hội --- cho dù khóa xảy ra khi bạn bắt đầu chỉnh sửa một hàng hoặc được hoãn lại cho đến khi bạn lưu hàng đã thay đổi.

Thực tế "mạng chậm" có thể là mối quan tâm lớn nhất nếu chậm có nghĩa là mạng không dây. Truy cập chỉ an toàn trên mạng LAN có dây cứng.

Chỉnh sửa: Truy cập không phù hợp với môi trường mạng WAN. Xem this page bởi Albert D. Kallal.

+0

Tôi hiểu về việc không đọc (nếu được hiểu là ở đâu đó giữa 'đang xử lý' và 'kiểm tra') ở bất kỳ đâu xa hơn chỉ mục cần thiết hoặc bất kỳ cột hoặc hàng không cần thiết nào. Tuy nhiên, tôi muốn hỏi cụ thể, điều đó có nghĩa là chỉ các phần của tệp mà bạn đã đề cập (chỉ mục và hàng có id phù hợp) được chuyển qua mạng và không có dữ liệu nào khác được chuyển? ----- mạng chậm là rất lớn (xuyên quốc gia), tắc nghẽn và nhiều cấp độ kiểm tra bảo mật, nhưng dù sao có dây. ----- khóa - Tôi không chủ động khóa db, khóa do cơ sở dữ liệu được mã hóa –

+0

Ngoài ra, tôi muốn chỉ ra rằng tôi muốn thực hiện chức năng này trong môi trường SharePoint/SQL Server, vì tôi cảm thấy thoải mái hơn một chút (đúng hay sai). Việc sử dụng Access Front và Back end là những gì tôi tin là lựa chọn duy nhất của tôi vì tôi bị giới hạn ở các máy trạm với Office và chia sẻ mạng (không sử dụng web, máy chủ cơ sở dữ liệu, v.v. vì giấy tờ sẽ mất quá nhiều thời gian - Tôi có đề cập đến điều này là một văn phòng nhỏ trong quân đội?) có lẽ "chậm" là ít chính xác hơn "laggy" –

+1

Tôi cập nhật câu trả lời của tôi với một liên kết về truy cập và WAN. Bạn sẽ có cơ sở dữ liệu tham nhũng cuối cùng, nếu bạn chưa nhận được nó. Về số lượng được chuyển, có đủ tệp phải được đọc để xác định vị trí (trong tệp) của các bảng hệ thống, sau đó tìm bù đắp cho các bảng dữ liệu bạn đang truy vấn/cập nhật/v.v. Ngoài ra còn có bộ nhớ đệm xảy ra với Windows và/hoặc trường hợp ứng dụng Access của bạn ảnh hưởng đến bao nhiêu dữ liệu cần phải được đọc mới --- nhưng những chi tiết đó vượt quá mức lương của tôi. tiếp tục ... – HansUp

Các vấn đề liên quan