我知道有些人可能会建议这个问题需要在 StackOverFlow 上提出,但我认为这不是开发问题,可能是 IT/安全问题。我也在 ServerFault 上发布了此内容。
我是公司里最新的开发人员,远程工作。我收到了一台一流的快速开发笔记本电脑,它和其他人一样。这台笔记本电脑连接到 USB-C 转 LAN 适配器,然后连接到网络交换机,然后连接到我的路由器(全部通过 LAN 连接)。
我使用 VPN 连接数据库等。在所有开发人员中,我的环境性能最慢(大约慢 10 到 20 倍)。因此,每次我更改代码并重新编译代码时,我都必须等待 12 到 15 分钟才能加载!
我已经分析了我的代码,并注意到 SQL 查询执行时间非常长。通过 SSMS(或 VisualStudio)在我的计算机上运行查询需要 70 到 90 秒,而在其他开发人员的计算机上运行只需不到 2 秒。(其中一位开发人员和我住在同一个城镇,使用同一个互联网提供商)
一些 C# 操作在其他笔记本电脑上运行需要不到 1 毫秒的时间,但在我的计算机上却需要 70 毫秒到 150 毫秒。
另一位开发人员和我 ping 了同一个数据库服务器,我们有可比的统计数据(延迟、零数据包丢失等,连接到 VPN 后互联网速度相似),但我的查询仍然需要更长的时间来执行!查询也是一个简单的
Select top(10000) ID from someTable
- 我已经禁用了我的防病毒软件(每个人的电脑上都是同样的情况)并且没有运气!
- 我已将笔记本电脑(通过 USB-C -> LAN 集线器)连接到我的路由器(消除交换机),但仍然没有运气。
- 我已经修改了我的主机文件,将本地主机指向 127.0.0.1,以确保这些调用不会传到外面,但仍然没有成功。
- 我已将我的 Dev 指向其他数据库,但没有成功!一切仍然非常慢。
- 我已经断开了局域网并使用 WIFI 连接到路由器,但仍然没有运气!
- 我问过 IT 部门,他们一点头绪都没有!我做过很多其他测试,但我真的怀疑这是否是本地问题!
- 在运行时,我已为所有 Visual Studio/IIS/SSMS 进程赋予“实时”优先级,但仍然没有成功。
我还可以要求它检查哪些其他内容?我还可以检查哪些其他本地设置/内容?无论它是什么,对我来说,它似乎知道哪些数据包要发送到哪里以及它们的内容是什么,并且可以有选择地扫描/延迟它们!
我将禁用 Windows 防火墙并查看,但我真的怀疑它是罪魁祸首。
答案1
启用与本地开发服务器的 TCP/IP 连接可以解决此问题。
- 开始 -> 运行 -> mmc
- 文件 -> 添加/删除管理单元...
- SQL 服务器配置管理器 -> [确定]
- SQL Server 网络配置 -> MSSQLSERVER 协议 -> TCP/IP=Enabled
- 重启服务器。