客户端有一个危险的 SQL Server 2005 实例。VB.NET 1.1 从另一台服务器连接到该实例没有问题。打开对子网开放的端口 1433 的 Windows 防火墙似乎只是一种快速的权宜之计。
DB 似乎很好,但在一个小时内开始变慢......好像它正在失去连接它的池。最终无法通过应用程序或其他工具建立连接。
SQL Server 是否需要打开其他端口?
Linux 家伙在这里摸不着头脑。
客户端有一个危险的 SQL Server 2005 实例。VB.NET 1.1 从另一台服务器连接到该实例没有问题。打开对子网开放的端口 1433 的 Windows 防火墙似乎只是一种快速的权宜之计。
DB 似乎很好,但在一个小时内开始变慢......好像它正在失去连接它的池。最终无法通过应用程序或其他工具建立连接。
SQL Server 是否需要打开其他端口?
Linux 家伙在这里摸不着头脑。
假设您使用默认值运行 SQL Server,那么 1433 应该是您需要打开的唯一端口。
关于减速部分 - 使用我的Perfmon 监控教程收集有关 SQL Server 的统计信息。从那里我们可以确定服务器的哪一部分是瓶颈。如果需要,请在服务器快速时收集几分钟的统计信息,然后在服务器速度较慢时再次收集。收集这些统计信息对性能没有影响。然后通过 [email protected] 将文件发送给我,我应该能够很快说出瓶颈在哪里。
运行 sp_who2 以查看谁已连接以及他们使用什么。
JR
SQL Server 提供了一种在“SQL Server Management Studio”下监视打开连接的方法。我会检查以确保连接没有被打开并从应用程序中保持打开状态。因为除非应用程序显式关闭连接,否则它可能会保持打开状态,直到垃圾收集器决定最终清理对象并将连接释放回池。
另一种检查是否发生这种情况的方法是等到应用程序无法再连接。一旦处于这种状态,如果重新启动应用程序解决了这个问题,那么它可能是应用程序代码的问题。
当连接不再可能时,您可以在盒子上进行本地连接吗?如果是这样,请尝试使用 Management Studio 再次连接,但不要使用“共享内存”,而是使用“TCP/IP”。
如果后者失败,那么我确实会调查防火墙情况。但是,我不倾向于将防火墙设置与“随着时间的推移失去连接”联系起来。