我有一个直接连接到 SQL Server 2005 数据库的旧版应用程序 WinForms。
同时打开了许多客户端应用程序(数百个),因此我想尽量减少与数据库的连接数。
我可以尽早且经常地释放连接,并将超时值保持在较低水平。
还有其他我需要考虑的事情吗?
我有一个直接连接到 SQL Server 2005 数据库的旧版应用程序 WinForms。
同时打开了许多客户端应用程序(数百个),因此我想尽量减少与数据库的连接数。
我可以尽早且经常地释放连接,并将超时值保持在较低水平。
还有其他我需要考虑的事情吗?
尝试在创建新连接时使用相同的连接字符串,因此 .Net 将使用一个连接池。
尽快处理您的连接。
您可以在连接字符串本身中设置最大池大小以确定最大活动连接数。
您应该考虑引入连接池。在 Java 世界中,您通常可以通过应用服务器“免费”获得此功能。但是,如果您关心的一切都是数据库连接池,那么这无论如何都会过大。
一般的想法是让一个进程(在服务器上)打开有限数量的与数据库的并行连接。您将在某种“代理”应用程序(某种小型应用程序服务器)中执行此操作,并重新使用昂贵的成本来为您的应用程序的传入连接创建数据库连接,这些连接的创建和丢弃成本更低。
当然,这也需要对客户端进行一些更改,因此如果您不能接受它作为先决条件,这可能不是理想的解决方案。