sql server 仅在 LAN 上速度慢

sql server 仅在 LAN 上速度慢

我的服务器上有一个 MS SQL Server 实例。

运行select * from sys.columns需要 00:00 秒。(仅作为示例,大多数查询都有相同的问题)

当我运行相同的查询时SSMS,它需要30秒以上,有时甚至需要几分钟。

有趣的是:前大约 500-600 行立即返回,然后其余行缓慢返回。

这个问题今天才开始出现。

我尝试过的:

  • 我关闭了客户端电脑上的卡巴斯基
  • 我关闭了 opendns
  • 我重启了两台电脑
  • 关闭了大多数应用程序与数据库的连接
  • 我检查了活动监视器,没有发生什么重大事件
  • 客户统计数据并没有显示太多信息

问题仍然存在

在服务器上,它始终是 0 秒,在局域网上,大约一分钟

此外,我通过 SSMS 从我的客户端电脑连接到海外的远程服务器,也是 0 秒

似乎只存在于这里的电脑和服务器之间

这可能是什么问题?我应该去哪里查找?

更新 2 天前我请了一位技术人员,工作了一段时间,重启了一些东西,昨天一切正常。今天问题又出现了

我尝试断开所有客户端电脑与数据库的连接(关闭所有连接到数据库的应用程序),然后再次运行查询。同样需要大约 35 秒

更新2

大家好。我又遇到了同样的问题。不过现在更奇怪了,因为我在全新安装 Windows 10 的客户端电脑上也遇到了这个问题。没有自定义防火墙/防病毒软件或类似的东西。

我尝试过的:

  1. 我意识到服务器的 DNS 地址指向 OpenDns,由于我不再使用它,我将服务器切换为 10.0.0.138/8.8.8.8。这没什么帮助。

  2. 我手动将条目添加到服务器的 Hosts 文件中(例如 10.0.0.1 MyClient 等)。这在 SSMS 中从 MyClient 到 MyServer 产生了巨大差异,但并没有完全解决问题。含义:

    • 大多数查询现在都会立即返回,但并非全部。
    • nslookup MyClient仍然出现相同的错误(google-public-dns-a.google.com can't find MyClient: Non-existent domain
    • FWIW ping MyClient 立即返回到服务器上,没有任何问题
    • 使用 Entity Framework 的 .net 应用程序仍需要大约 30 秒才能返回相同的查询,而在同一台机器上 SSMS 只需 0 秒即可返回

如果可能的话,我不介意完全禁用 SQL Server 上的 nslookup。我不需要它。但到目前为止,我找不到任何这样的选项。

还能做什么?

谢谢!

答案1

这有点猜测(因为可能是多种原因),但可能是由于服务器上的某种原因,客户端 IP 的反向 DNS 查找超时。快速测试是查看nslookup <client IP>解析需要多长时间,或者将客户端 IP 添加到服务器主机文件条目并测试查询。

相关内容