使用 IP 地址连接SQL Server 数据库的速度慢的原因

来源:互联网 发布:网络小贷整顿会议 编辑:程序博客网 时间:2024/05/16 15:22

症状

        当安装 Microsoft 数据访问组件 (MDAC) 版本 2.6 后,每次尝试使用 IP 地址(而不是服务器名称)连接到 SQL Server 7.0 或 SQL Server 2000 数据库时所花的时间可能比预期的要长。在某些报告的情况中,其表现为向客户端应用程序报告“超时已过期”错误,而且连接尝试失败。
      请注意,如果您使用的是映射到 TCP/IP 地址的服务器别名,则可能会出现此错误。
      如果安装了 MDAC 2.5 或 2.1,则不会出现此问题。

原因

        SQL Server 网络库的 Dbnetlib.dll 的 MDAC 2.6 版本尝试使用反向搜索来确定 IP 地址的主机名。如果客户端计算机具有较慢的域名服务 (DNS) 服务器或者没有 DNS 服务器,并且计算机上的本地 HOSTS 或 LMHOSTS 文件不包含 SQL Server 的 IP 地址的主机名,则反向搜索将在五秒钟后超时。
        请注意,这只是 SQL Server 驱动程序代码内部的超时,它可能会在客户端应用程序中生成超时错误,也可能不会。连接尝试可能会成功,但应用程序所建立的每一个新连接将出现相同的五秒钟延迟。

解决方案

       若要解决此问题,请获取最新的 Microsoft SQL Server 2000 Service Pack。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
        如何获取最新的 SQL Server 2000 Service Pack :(http://support.microsoft.com/kb/290211/):     
       要解决此问题,请获取最新的 Microsoft Data Access Components 2.6 Service Pack。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
     如何获取最新的 MDAC 2.6 Service Pack (http://support.microsoft.com/kb/300635/)

修复程序

注意:以下修复程序是在 SQL Server 2000 Service Pack 2 之前创建的。

该修复程序的英文版应具有以下或更新的文件属性:
日期         版本       大小    文件名        平台 ---------------------------------------------------------------19-JUN-2001  2000.080.0304.00  86,082  Dbnetlib.dll     x86

替代方法

       若要解决此问题,请提供一些可靠的方法来执行 SQL Server 服务器 IP 地址的反向搜索,使用 SQL Server 计算机名(而不是 IP 地址),或者应用此修复程序。
      若要使用 HOSTS 文件或 LMHOSTS,请将 SQL Server 服务器的 TCP/IP 地址放在行的开头,后面接几个空格,然后是 SQL Server 服务器的计算机名。例如:
                 123.123.123.123 myservername
     对于运行 Microsoft Windows NT 和 Microsoft Windows 2000 的客户机,HOSTS 或 LMHOSTS 文件位于 System32/Drivers/Etc 目录;对于运行 Microsoft Windows ME、Microsoft Windows 98 或 Microsoft Windows 95 的客户机,HOSTS 或 LMHOSTS 文件位于 /Windows 目录。

 

症状

        当安装 Microsoft 数据访问组件 (MDAC) 版本 2.6 后,每次尝试使用 IP 地址(而不是服务器名称)连接到 SQL Server 7.0 或 SQL Server 2000 数据库时所花的时间可能比预期的要长。在某些报告的情况中,其表现为向客户端应用程序报告“超时已过期”错误,而且连接尝试失败。
      请注意,如果您使用的是映射到 TCP/IP 地址的服务器别名,则可能会出现此错误。
      如果安装了 MDAC 2.5 或 2.1,则不会出现此问题。

原因

        SQL Server 网络库的 Dbnetlib.dll 的 MDAC 2.6 版本尝试使用反向搜索来确定 IP 地址的主机名。如果客户端计算机具有较慢的域名服务 (DNS) 服务器或者没有 DNS 服务器,并且计算机上的本地 HOSTS 或 LMHOSTS 文件不包含 SQL Server 的 IP 地址的主机名,则反向搜索将在五秒钟后超时。
        请注意,这只是 SQL Server 驱动程序代码内部的超时,它可能会在客户端应用程序中生成超时错误,也可能不会。连接尝试可能会成功,但应用程序所建立的每一个新连接将出现相同的五秒钟延迟。

解决方案

       若要解决此问题,请获取最新的 Microsoft SQL Server 2000 Service Pack。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
        如何获取最新的 SQL Server 2000 Service Pack :(http://support.microsoft.com/kb/290211/):     
       要解决此问题,请获取最新的 Microsoft Data Access Components 2.6 Service Pack。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
     如何获取最新的 MDAC 2.6 Service Pack (http://support.microsoft.com/kb/300635/)

修复程序

注意:以下修复程序是在 SQL Server 2000 Service Pack 2 之前创建的。

该修复程序的英文版应具有以下或更新的文件属性:
日期         版本       大小    文件名        平台 ---------------------------------------------------------------19-JUN-2001  2000.080.0304.00  86,082  Dbnetlib.dll     x86

替代方法

       若要解决此问题,请提供一些可靠的方法来执行 SQL Server 服务器 IP 地址的反向搜索,使用 SQL Server 计算机名(而不是 IP 地址),或者应用此修复程序。
      若要使用 HOSTS 文件或 LMHOSTS,请将 SQL Server 服务器的 TCP/IP 地址放在行的开头,后面接几个空格,然后是 SQL Server 服务器的计算机名。例如:
                 123.123.123.123 myservername
     对于运行 Microsoft Windows NT 和 Microsoft Windows 2000 的客户机,HOSTS 或 LMHOSTS 文件位于 System32/Drivers/Etc 目录;对于运行 Microsoft Windows ME、Microsoft Windows 98 或 Microsoft Windows 95 的客户机,HOSTS 或 LMHOSTS 文件位于 /Windows 目录。

 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1515573

 
原创粉丝点击