Tôi muốn tạo một ứng dụng trong C# với phía máy khách và máy chủ. Nó sẽ hoạt động trên mạng cục bộ. Các phía máy khách phải kiểm tra các bản cập nhật trên một máy chủ SQL từ xa. Giả sử chúng tôi đã đặt khoảng thời gian cập nhật thành 2 giây. Nếu tôi có 20 ứng dụng phía máy khách, thì họ sẽ gửi truy vấn đến SQL Server từ xa cứ sau 2 giây và nó sẽ tải máy chủ khá nhiều. Bây giờ tôi muốn biết là có cách nào để giảm tải máy chủ hoặc nó chỉ là cách để kiểm tra các bản cập nhật?Làm cách nào để giảm tải SQL Server từ xa?
Trả lời
Từ quan điểm của tôi, không cần phải cho phép khách hàng kết nối trực tiếp DB serer. Sẽ có thêm một tầng ở đây sẽ chỉ kết nối với máy chủ và thông tin bộ nhớ cache về các bản cập nhật. Khách hàng của bạn nên kết nối với thông tin bổ sung này và làm việc với thông tin được lưu trong bộ nhớ cache.
CẬP NHẬT Theo như tôi hiểu, vấn đề xuất hiện vì tất cả các khách hàng của bạn ping máy chủ DB của bạn mỗi hai giây. Giải pháp cho vấn đề này là tạo ra một mô-đun đặc biệt chỉ có quyền truy cập vào máy chủ DB và yêu cầu nó để cập nhật. Ví dụ, cứ hai giây một lần. Nếu bản cập nhật đã sẵn sàng, nó sẽ có thể lấy nó từ DB và lưu trữ. Đây là những gì tôi có nghĩa là dưới cấp bổ sung.
Bây giờ, hãy quay lại với khách hàng của bạn. Họ sẽ có thể giao tiếp với mô-đun này và nhận thông tin từ nó về một bản cập nhật sẵn sàng (thông tin này được lưu trữ và do đó nó thực sự nhanh chóng có được nó. Ngoài ra, bạn không cần ping máy chủ theo mọi yêu cầu của khách hàng). Nếu bản cập nhật sẵn sàng, hãy tìm nạp nó về phía máy khách và làm việc ở phía máy khách.
Đối với giao tiếp giữa cấp bổ sung này và khách hàng. Vì bạn đang làm việc với .NET, tôi khuyên bạn nên xem WCF, theo quan điểm của tôi, trở thành một cách tiếp cận tiêu chuẩn để thực hiện truyền thông giữa các tiến trình trong .NET. Có rất nhiều thông tin trong mạng về nó, tôi sẽ đăng các liên kết ngay.
Đây là yêu thích cuốn sách WCF của tôi:
MSDN nhập:
vui lòng giải thích chi tiết hơn, nếu bạn có thể, thx trước –
@ user841470: Nói cách khác gọi lớp trung lưu. Bạn có thể sử dụng một cái gì đó giống như một SqlCacheDependency lưu trữ một truy vấn hoặc bảng. Bằng cách này, bộ nhớ cache luôn có dữ liệu mới nhất. Điều này có thể được thực hiện như một dịch vụ Web hoặc dịch vụ WCF đang làm bộ nhớ đệm. Ứng dụng gọi dịch vụ web/WCF, dữ liệu có liên quan được trả về. –
@ user841470, tôi đã cập nhật câu trả lời – platon
- 1. AMQP, SQL Server và XA
- 2. Làm thế nào để biết SQL Server là cục bộ hay từ xa?
- 3. Làm cách nào để xuất dữ liệu từ SQL Server?
- 4. Xác định connectionString cho tổ chức từ xa SQL Server
- 5. Không thể kết nối từ xa với SQL Server instance
- 6. Làm cách nào để bật MSDTC trên SQL Server?
- 7. Làm thế nào để giảm tài sản SẮC của cột trong SQL Server 2005
- 8. Làm cách nào để chuyển đổi tệp SQL Server 2008 .mdf thành SQL Server 2012?
- 9. Làm cách nào để xuất dữ liệu từ SQL Server 2008.2010 trong DML (tập lệnh SQL)?
- 10. Làm cách nào để thoát _ trong SQL Server?
- 11. Sử dụng lệnh runas để đăng nhập từ xa vào SQL Server
- 12. Làm cách nào để sao lưu kho SVN từ xa
- 13. SQL Server SMO sao lưu cục bộ từ máy chủ từ xa
- 14. Tải lên/Tải xuống tệp từ SQL Server 2005/2008 từ ứng dụng WinForms C#?
- 15. Làm cách nào để thả khóa ngoại trong SQL Server?
- 16. Làm cách nào để đánh giá truy vấn SQL Server?
- 17. Làm thế nào để chuyển đổi cơ sở dữ liệu SQL Server 2008 R2 sang SQL Server 2012?
- 18. Làm cách nào để tải xuống một phần tệp từ xa với cURL?
- 19. Trong git, làm cách nào để kiểm tra các nhánh từ xa của kho từ xa?
- 20. Cách tốt nhất để đồng bộ hóa cơ sở dữ liệu SQL Server từ xa với cơ sở dữ liệu SQL Server Compact cục bộ?
- 21. SQL Server ARITHABORT
- 22. Tải mã từ xa Android
- 23. Làm cách nào để phát triển từ xa với Emacs?
- 24. Làm cách nào để so sánh 2 hàng từ cùng một bảng (SQL Server)
- 25. Làm cách nào để truy cập SQL Server từ các ứng dụng Windows 8?
- 26. Làm cách nào để tạo tài liệu (docx hoặc pdf) từ SQL Server?
- 27. Làm cách nào để khôi phục một bảng từ bản sao lưu SQL Server 2005?
- 28. Làm cách nào để thực thi tệp SQL 3GB (Microsoft SQL Server)?
- 29. Làm thế nào để từ xa thực thi một kịch bản từ xa cao trong PowerShell
- 30. Làm cách nào để kết nối với máy chủ MySQL từ xa bằng C#?
là gì các dữ liệu bạn cần phải kiểm tra thường xuyên? – Gareth
hệ thống quản lý hàng đợi của nó –