欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

win2008 R2与sql 2005、2008运行asp的时候速度缓慢的解决方法

程序员文章站 2022-07-09 16:51:07
在以sql server 2005数据库为后台的asp网站访问速度慢,情况如下:一个服务器上的两个asp网站,一个访问很快,一个很慢。 原因排查的思路与步骤: 首先在我...

在以sql server 2005数据库为后台的asp网站访问速度慢,情况如下:一个服务器上的两个asp网站,一个访问很快,一个很慢。

原因排查的思路与步骤:

首先在我电脑上依次打开这两个网站,一个两三秒就打开了,另一个需要10秒钟。看来问题情况属实;

登陆到服务器,在服务器本地的iis里分别打开这两个网站,结果还是一个快一个慢,排除是dns解析时间和网络造成的影响;

打开两个网站程序的首页asp文件,发现访问快的网站没有数据库查询,访问慢的网站查询了数据库。由于程序里的数据库查询语句也很简单,排除了程序和数据库查询语句的问题,最后将问题定位到数据库sql server上;

打开sql server 2005 上面就一个数据库,随便在sql server management studio上执行了两个复杂点的查询语句,速度很快,感觉不像是数据库查询速度的问题。

系统cpu、内存负载都不高。实在找不到原因了。就打开命令提示符,用netstat-ano检查了下网络连接。发现只有sqlserver的1434端口在监听,竟然没有sqlserver的1433端口在监听和连接,但是没有监听和连接网站为何却能访问。想着是否sqlserver修改了监听端口了。

打开sql server2005的sql server 配置管理器sql server 2005 网络配置->mssqlserver的协议->tcp/ip ,发现tcp/ip竟然是禁用的,协议里只开启了shared memory 。属性里面设置的监听端口倒是默认的1433.于是将tcp/ip启用。重启了sql server服务后打开网站速度就很快了。

问题算是解决了。原因就是由于没有开启sql server 里的tcp/ip协议,使用了shared memory的方式连接数据库,所以造成网站访问很慢。

下面是其他网友的补充方法:

最近碰到一台web服务器硬盘出现故障,又因服务器运行了10年便将web服务更换到一台新的服务器上,但迁移后出现了各种问题,现将问题和解决方法总结一下:

windows2003+asp+sqlserver2000 新web服务器:
windows2008r2+asp+sql server2008

网站及数据库全部迁移过来后打开首页、内容页、后台都正常,但发现一个文件签收的页面打开速度非常慢,有时打不开。

查看了下代码一切正常找不到原因,感觉像是数据库查询时的问题,然后百度一下,说是数据库使用了内存共享连接模式,于是将数据库更换为tcp连接模式,这下能打开了,但是还是慢,大概需要5-8秒。
继续在网上寻找解决方法,有说是数据库查询后没有关闭,各种方法都尝试过了,最后一篇文章短短几句话让我解决了问题,原因是数据库连接语句不对。

原有的连接语句是:

provider=sqloledb;user id=数据库帐号;password=数据库密码;initialcatalog=数据库名;data source=数据库ip;

该语句在原有服务器下没有任何问题,但是换到新的服务器环境下不行。

解决方法就是将连接语句换成下面的:

driver={sql server};server=数据库ip;uid=数据库帐号;pwd=数据库密码;database=数据库名;