连接到SQL Server非常慢

时间:2010-07-11 15:24:14

标签: php sql-server database-connection

我有一个标准的php应用程序,它使用SQL Server作为后端数据库。我访问的每个页面的响应都有严重延迟。这是我的开发服务器,所以它不是现场设置的问题,但它对于在系统上工作真的很烦人。

每页都有5到8秒的延迟。

  • 我在虚拟机(Virtual PC)上运行SqlServer 2000 Developer Edition。
  • 我已经在我的开发机器上安装了SqlServer但是得到了相同的延迟。
  • 我已将问题隔离到调用mssql_connect(调用mssql_pconnect无效)

  • 关于我如何设置(或没有设置,因为我没有真正更改默认配置)SQL服务器是一个网络问题。这不是一个严格的编程问题,但我想我可能会在这里得到一些有价值的反馈。

有人可以告诉我是否有技巧,特定的协议集,注册表设置,会阻止这种延迟吗?

4 个答案:

答案 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上。

希望这有助于其他人。