2009-02-23 5 views
7

Tôi đang sử dụng SQL Express 2008 làm phụ trợ cho ứng dụng web, vấn đề là ứng dụng web được sử dụng trong giờ làm việc nên đôi khi trong giờ ăn trưa hoặc nghỉ khi không có người dùng đăng nhập trong khoảng thời gian 20 phút vào chế độ chờ và giải phóng bộ nhớ cache của nó.Có cách nào để dừng SQL Express 2008 khỏi Idling không?

Tôi biết điều này vì nó có thể ghi cái gì đó như: máy chủ tiếp tục thực hiện sau khi được nhàn rỗi 9709 giây hoặc Khởi động cơ sở dữ liệu 'xxxxxxx' trong trường hợp đăng nhập

Tôi muốn tránh những hành vi nhàn rỗi này , có anyway để cấu hình SQL Express để ngừng chạy không tải hoặc ít nhất là mở rộng cửa sổ thời gian dài hơn 20 phút. Hoặc là lựa chọn duy nhất của tôi để viết một dịch vụ mà thăm dò ý kiến ​​các db mỗi 15 phút để giữ cho nó spooled lên?

Sau khi đọc các bài viết như this, nó không có vẻ hứa hẹn nhưng có thể có một cài đặt hack hoặc đăng ký mà ai đó biết.

Trả lời

8

Hành vi đó không thể định cấu hình được.

Bạn phải thực hiện một phương pháp để thăm dò ý kiến ​​cơ sở dữ liệu thường xuyên. Ngoài ra, giống như bài viết bạn đã liên kết đến đã nói, hãy đặt thuộc tính AUTO CLOSE thành false.

1

Viết một chuỗi thực hiện một truy vấn đơn giản sau mỗi vài phút. Bắt đầu thread trong application.Start global.asax của bạn và bạn nên làm xong!

3

Chỉ cần một truy vấn SQL ngắn như thế này mỗi vài phút sẽ ngăn SQLServer từ đi nhàn rỗi:

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

Dưới đây là một lời giải thích tốt: https://blogs.msdn.microsoft.com/sqlexpress/2008/02/22/understanding-sql-express-behavior-idle-time-resource-usage-auto_close-and-user-instances/

Dù: Tôi không biết thời gian sau sql nhanh đi nhàn rỗi. Tôi đề nghị chạy kịch bản dưới 10 phút một lần (có thể là công cụ lên lịch). này sẽ ngăn chặn SQL Server Express từ đi nhàn rỗi:

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

Ngoài ra hãy chắc chắn rằng tất cả các dữ liệu bất động sản căn cứ được thiết lập để AUTO_CLOSE = FALSE

+0

Nó rất dễ dàng để sử dụng một tập lệnh batch cho rằng: \ n –