2009-02-23 7 views
7

Utilizzo SQL Express 2008 come back-end per un'applicazione Web, il problema è che l'applicazione Web viene utilizzata durante l'orario di ufficio, quindi a volte durante il pranzo o l'intervallo quando non ci sono utenti registrati per un periodo di 20 minuti. in modalità inattiva e liberare la cache.C'è un modo per fermare SQL Express 2008 da Idling?

Sono a conoscenza di questo, perché registra qualcosa come: Server riprende l'esecuzione dopo un periodo di inattività 9709 secondi o Avvio del database 'xxxxxxx' nel registro eventi

vorrei evitare questo comportamento di inattività , è comunque necessario configurare SQL Express per arrestare l'inattività o almeno allargare la finestra temporale a più di 20 minuti. O è la mia unica opzione per scrivere un servizio che esegue il polling del db ogni 15 minuti per tenerlo in spool?

Dopo aver letto articoli come this non sembra promettente, ma forse c'è un'impostazione di registrazione o registro che qualcuno conosce.

risposta

8

Questo comportamento non è configurabile.

È necessario implementare un metodo per eseguire il polling del database ogni tanto. Inoltre, come l'articolo che hai collegato a detto, imposta la proprietà AUTO CLOSE su false.

1

Scrivere un thread che esegue una query semplice ogni pochi minuti. Avvia il thread nel tuo global.asax Application_Start e dovresti farlo!

3

A pochi query SQL come questo ogni pochi minuti impedirà SQLserver di andare inattività:

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

Ecco una buona spiegazione: https://blogs.msdn.microsoft.com/sqlexpress/2008/02/22/understanding-sql-express-behavior-idle-time-resource-usage-auto_close-and-user-instances/

Qualunque cosa: non so il tempo dopo sql espresso va inattivo. Suggerisco di eseguire lo script di seguito ogni 10 minuti (forse l'utilità di pianificazione). Ciò impedirà SQL Server Express di andare inattività:

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

assicurarsi che anche tutti i dati di proprietà basi è impostato su AUTO_CLOSE = FALSE

+0

E 'facile da usare uno script batch per questo: \ n –