在以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=數據庫名;
新聞熱點
疑難解答
圖片精選