在以SQL Server 2005數(shù)據(jù)庫為后臺(tái)的ASP網(wǎng)站訪問速度慢,情況如下:一個(gè)服務(wù)器上的兩個(gè)ASP網(wǎng)站,一個(gè)訪問很快,一個(gè)很慢。
原因排查的思路與步驟:
首先在我電腦上依次打開這兩個(gè)網(wǎng)站,一個(gè)兩三秒就打開了,另一個(gè)需要10秒鐘。看來問題情況屬實(shí);
登陸到服務(wù)器,在服務(wù)器本地的IIS里分別打開這兩個(gè)網(wǎng)站,結(jié)果還是一個(gè)快一個(gè)慢,排除是DNS解析時(shí)間和網(wǎng)絡(luò)造成的影響;
打開兩個(gè)網(wǎng)站程序的首頁ASP文件,發(fā)現(xiàn)訪問快的網(wǎng)站沒有數(shù)據(jù)庫查詢,訪問慢的網(wǎng)站查詢了數(shù)據(jù)庫。由于程序里的數(shù)據(jù)庫查詢語句也很簡(jiǎn)單,排除了程序和數(shù)據(jù)庫查詢語句的問題,最后將問題定位到數(shù)據(jù)庫SQL Server上;
打開SQL Server 2005 上面就一個(gè)數(shù)據(jù)庫,隨便在SQL Server Management Studio上執(zhí)行了兩個(gè)復(fù)雜點(diǎn)的查詢語句,速度很快,感覺不像是數(shù)據(jù)庫查詢速度的問題。
系統(tǒng)CPU、內(nèi)存負(fù)載都不高。實(shí)在找不到原因了。就打開命令提示符,用netstat-ano檢查了下網(wǎng)絡(luò)連接。發(fā)現(xiàn)只有sqlserver的1434端口在監(jiān)聽,竟然沒有sqlserver的1433端口在監(jiān)聽和連接,但是沒有監(jiān)聽和連接網(wǎng)站為何卻能訪問。想著是否sqlserver修改了監(jiān)聽端口了。
打開SQL Server2005的SQL Server 配置管理器SQL Server 2005 網(wǎng)絡(luò)配置->MSSQLSERVER的協(xié)議->TCP/IP ,發(fā)現(xiàn)TCP/IP竟然是禁用的,協(xié)議里只開啟了Shared Memory 。屬性里面設(shè)置的監(jiān)聽端口倒是默認(rèn)的1433.于是將TCP/IP啟用。重啟了SQL Server服務(wù)后打開網(wǎng)站速度就很快了。
問題算是解決了。原因就是由于沒有開啟SQL Server 里的TCP/IP協(xié)議,使用了Shared Memory的方式連接數(shù)據(jù)庫,所以造成網(wǎng)站訪問很慢。
下面是其他網(wǎng)友的補(bǔ)充方法:
最近碰到一臺(tái)WEB服務(wù)器硬盤出現(xiàn)故障,又因服務(wù)器運(yùn)行了10年便將WEB服務(wù)更換到一臺(tái)新的服務(wù)器上,但遷移后出現(xiàn)了各種問題,現(xiàn)將問題和解決方法總結(jié)一下:
Windows2003+asp+sqlserver2000 新WEB服務(wù)器:
Windows2008R2+asp+SQL Server2008
網(wǎng)站及數(shù)據(jù)庫全部遷移過來后打開首頁、內(nèi)容頁、后臺(tái)都正常,但發(fā)現(xiàn)一個(gè)文件簽收的頁面打開速度非常慢,有時(shí)打不開。
查看了下代碼一切正常找不到原因,感覺像是數(shù)據(jù)庫查詢時(shí)的問題,然后百度一下,說是數(shù)據(jù)庫使用了內(nèi)存共享連接模式,于是將數(shù)據(jù)庫更換為TCP連接模式,這下能打開了,但是還是慢,大概需要5-8秒。
繼續(xù)在網(wǎng)上尋找解決方法,有說是數(shù)據(jù)庫查詢后沒有關(guān)閉,各種方法都嘗試過了,最后一篇文章短短幾句話讓我解決了問題,原因是數(shù)據(jù)庫連接語句不對(duì)。
原有的連接語句是:
Provider=Sqloledb;User ID=數(shù)據(jù)庫帳號(hào);Password=數(shù)據(jù)庫密碼;InitialCatalog=數(shù)據(jù)庫名;Data Source=數(shù)據(jù)庫IP;
該語句在原有服務(wù)器下沒有任何問題,但是換到新的服務(wù)器環(huán)境下不行。
新聞熱點(diǎn)
疑難解答
圖片精選