如何减少远程SQL Server负载?

Tur*_*Ali 7 c# sql sql-server networking network-programming

我想在C#中创建一个带有客户端和服务器端的应用程序.它将在本地网络上运行.客户端必须检查远程SQL Server上的更新.假设我们将更新时间间隔设置为2秒.如果我有20个客户端应用程序,那么他们将每2秒向远程SQL Server发送一次查询,它将加载服务器相当多.现在我想知道有没有办法减少服务器负载或它是检查更新的唯一方法?

pla*_*ton 14

从我的角度来看,没有必要允许客户端直接连接数据库服务器.此处应该还有一个层,它只连接到服务器并缓存有关更新的信息.您的客户应连接到此附加信息并使用缓存的信息.

更新 据我所知,问题出现是因为所有客户端每两秒ping一次数据库服务器.此问题的解决方案是创建一个特殊模块,该模块只能访问数据库服务器并要求进行更新.例如,每两秒钟一次.如果更新准备就绪,它应该能够从数据库和存储中获取它.这就是我在附加层下的意思.

现在,让我们回到您的客户.他们应该能够与这个模块进行通信,并从中获取有关准备更新的信息(此信息被缓存,因此获取它的速度非常快.此外,您无需在每个客户端请求时ping服务器).如果更新已准备就绪,请将其提取到客户端并在客户端工作.

至于这个附加层和客户之间的通信.由于您正在使用.NET,我建议您查看WCF,从我的角度来看,它成为在.NET中实现进程间通信的标准方法.网络上有很多关于它的信息,我会很快发布链接.

这是我最喜欢的WCF书:

编程WCF服务

MSDN条目:

Windows Communication Foundation