我有一个标准的php应用程序,它使用SQL Server作为后端数据库。我访问的每个页面的响应都有严重延迟。这是我的开发服务器,所以它不是现场设置的问题,但它对于在系统上工作真的很烦人。
每页都有5到8秒的延迟。
我已将问题隔离到调用mssql_connect(调用mssql_pconnect无效)
关于我如何设置(或没有设置,因为我没有真正更改默认配置)SQL服务器是一个网络问题。这不是一个严格的编程问题,但我想我可能会在这里得到一些有价值的反馈。
有人可以告诉我是否有技巧,特定的协议集,注册表设置,会阻止这种延迟吗?
答案 0 :(得分:1)
我在运行虚拟PC时遇到了网络问题,网络相关的一切都很慢,请尝试在注册表中添加此条目:
HKEY_LOCAL_MACHINE \ SYSTEM \ CURRENTCONTROLSET \服务\ TCPIP \参数
创建名为DisableTaskOffload的新DWORD值并将其值设置为1.
重新启动计算机。
它对我有用,source。
答案 1 :(得分:1)
这可能是DNS问题吗?我知道MySQL在每次登录时都会进行反向DNS查询(而不是每个连接)。如果您的服务器没有反向DNS记录(或者您的DNS很慢),则可能导致登录时出现严重延迟。 MySQL中有一个选项可以禁用它。我不确定SQL Server,但我认为它可能正在做类似的事情......
答案 2 :(得分:1)
我记得同样的问题,但忘记了,我们如何解决它。
为了澄清请指定确切的连接字符串,您的SQLserver版本,并尝试启动这个旧的好实用程序c:\ WINDOWS \ system32 \ cliconfg.exe,这也可以带来一些亮点。
是的,我知道,它来自2k,但m $的人不喜欢从头开始创建客户端工具。
还尝试为PHP获取“正确”的mssql客户端dll。
答案 3 :(得分:1)
我在每次连接时都遇到了5-10秒的延迟,使用PHP的官方Microsoft SQL驱动程序(由@gaRex建议) - 这里发布的答案都没有为我解决。
根据@ircmaxell的建议,我的问题是DNS问题 - 解决方案是编辑\windows\system32\drivers\etc\hosts
文件(您的本地本地主机文件)并将自己的机器名称添加到其中。
在“系统属性”对话框中,找到计算机的“计算机名称” - 然后在本地主机文件中添加127.0.0.1 my-computer
之类的行。
对我来说,延迟再次发生,在下面的加载页面的尝试 - 之后,它超级快,没有任何延迟。
请注意,即使在物理计算机上也可能出现此问题,而不仅仅是在VM上。
希望这有助于其他人。