Sql-Server-2008

設置超時:SQL Server 2008/IIS 7.5

  • April 9, 2013

我們最近從 Win 2003/SQL Server 2000 系統遷移到 Win 2008 64 位 R2、SQL Server 2008 R2。

我們的網站是經典的 asp,目前無法更改為另一種腳本語言。

在舊伺服器上,如果我陷入某種無限循環,頁面會拋出錯誤。

在新伺服器上,我有一個頁面存在某種循環問題,即使 SQL SP 只被呼叫一次(並且作為伺服器上的查詢執行良好),它與 SQL 伺服器掛鉤,因此鎖定了我們所有的網站.

我會弄清楚我的程式碼,沒什麼大不了的。但我需要確保發生這種情況時伺服器超時。(我正在處理的頁面在某些查詢實例中執行良好,並使用不同的查詢變數與其他人鎖定。我不能在我三年沒有碰過的頁面上偷偷摸摸這樣的東西.)

我無法弄清楚從 ASP 頁面在伺服器上執行一次的 SP 是如何以這種方式佔用 SQL 伺服器的。這顯然是某種超時問題,但我不知道在哪裡/哪些超時值要更改。

我實際上必須遠端桌面到伺服器並終止 SQL 伺服器中的程序。

恐怕我是一個通才,伺服器管理不是我的事,即使這是我的責任,所以我幾乎肯定會對我收到的任何答案有疑問。

我怎樣才能找到這個?我需要更改哪些設置?

更多資訊:它不是 SQL Server 在我們的測試站點上,我創建了一個 ASP 文件,它只是執行了一個無限循環(在 1=1 時執行)並且遇到了同樣的問題 - 其他網站無法載入 - 沒有涉及 SQL Server。所以我認為程序掛起的原因是頁面沒有按預期超時,因此與 SQL 的連接從未關閉。殺死 SQL 伺服器中的程序會以某種方式重置頁面。

對於我故意的無限循環,我不得不刷新應用程序池以擺脫它。這更多地指向 IIS 或 ASP 設置。

ASP 超時設置為伺服器首次載入時的預設值。

不過,我仍然無法弄清楚為什麼一個文件會鎖定所有網站。同樣,舊伺服器上沒有發生這種情況。

給下一個人。

當像我這樣的人並不真正熟悉伺服器管理時,這個問題的解決方案歸結為觀念。

正如我在最初的問題中所說,我們剛剛從舊伺服器 - Windows Server 2003/SQL Server 2000 - 轉移到使用 Windows Server 2008 R2 64 位和 SQL Server 2008 R2 的新伺服器。我沒有設置原來的伺服器,而是花錢請人把東西遷移到新伺服器上,並給他指示,“按照舊伺服器的設置方式設置它。” 呵呵。

舊伺服器已經使用了 9 年,是一台配備1 GB RAM的雙 Xeon 處理器機器。原始伺服器設置有兩個網站——我們的預訂系統和公司網站——都使用相同的應用程序池。多年來,隨著網站的添加,它們被添加到預設應用程序池中。對於我們的資源問題,這是我們能做的最好的事情。在某些時候,一定有人將超時設置為一個非常短的值,可能是因為伺服器有時有點堵塞。

新伺服器具有 32GB 的 RAM 和 4 核處理器。但是我聘請的顧問完全按照我的要求進行了 - 幾乎 - 並按照舊伺服器上的方式設置了所有內容,包括將所有網站放入同一個應用程序池中。顯然,他沒有做的一件事是將超時設置為舊伺服器必須設置的較短值。

在新伺服器上,當我載入一個呼叫儲存過程的 ASP 頁面時,SQL Server 使用了分配給它的所有處理器並掛在那裡,所有網站都停止了,直到我在 SQL Server 中終止了該程序。經過一番研究,我發現同樣的事情發生了——所有網站都停止了——當執行任何類型的無限循環時,即使不涉及 SQL 伺服器,並且回收應用程序池將“修復”它。

這一切都歸結為假設/看法:舊伺服器上的超時時間足夠短,在調試某些東西時,我從未意識到所有網站都被鎖定,因為它只有 15 或 20 秒,然後頁面就會超時,我會修復它並繼續前進。但是,當超時設置為 120 秒時,情況就完全不同了。由於SQL Server停滯不前,我認為這是一個SQL Server問題,但它掛起,因為記錄和連接沒有關閉,因為頁面卡在一個循環中……所以它看起來只是SQL Server是其中的一部分問題。

最終的解決方案是將大多數網站分成自己的應用程序池(duh),並根據每個網站的適用情況調整 ASP 的超時值。

引用自:https://serverfault.com/questions/434658