2009-02-23 108 views
7

我正在使用SQL Express 2008作爲Web應用程序的後端,問題在於Web應用程序在營業時間內使用,所以有時在午餐或休息時間,當用戶沒有登錄20分鐘時間時,SQL Express將啓動進入空閒模式並釋放其緩存。有沒有辦法阻止SQL Express 2008怠速?

我知道這一點,因爲它記錄是這樣的: 服務器恢復的執行閒置9709秒 或 啓動了數據庫之後,「XXXXXXX」 在事件日誌中

我想避免這種閒置行爲,無論如何要配置SQL Express來停止空閒或至少將時間窗口延長到20分鐘以上。或者,我唯一的選擇是編寫一個服務,每隔15分鐘輪詢一次數據庫以保持它的後臺運行?

在閱讀this之類的文章之後,它看起來並不大有希望,但也許存在某人知道的黑客或註冊表設置。

回答

8

該行爲不可配置。

您必須實施一種方法來頻繁地輪詢數據庫。另外,就像您鏈接的文章所述,將AUTO CLOSE屬性設置爲false。

1

編寫一個線程,每隔幾分鐘執行一次簡單查詢。在你的global.asax Application_Start啓動線程,你應該完成!

3

只是這樣,每隔幾分鐘簡短的SQL查詢將阻止的SQLserver從去空閒:

SELECT TOP 0 NULL 
    FROM [master].[dbo].[MSreplication_options] 
GO 
0

這裏是一個很好的解釋:https://blogs.msdn.microsoft.com/sqlexpress/2008/02/22/understanding-sql-express-behavior-idle-time-resource-usage-auto_close-and-user-instances/

不管:我不知道時間後sql快遞閒置。我建議每10分鐘運行腳本(可能是任務計劃程序)。 這將防止SQL Server Express的從去空閒:

SELECT TOP 0 NULL FROM [master].[dbo].[MSreplication_options] GO 

還要確保基地屬性設置爲AUTO_CLOSE = FALSE

+0

這是很容易使用批處理腳本,所有數據:\ n – 2016-07-26 16:10:53

相關問題