2009-11-17 10 views
7

Nous avons un travail qui s'exécute chaque matin dans CruiseControl.net pour importer un fichier de données dans une base de données. Notre problème semble être que certaines nuits la DB va dormir pendant la nuit. Lorsque nous exécutons le script le matin, notre connexion expire pendant que nous attendons que le DB se réchauffe. Nous avons essayé d'augmenter les délais d'attente, etc., mais sans chance. Existe-t-il un moyen de dire à SQL Server de se réchauffer à un moment donné ou de le chatouiller pour le garder au chaud? Jusqu'à présent, nous exécutons le travail deux fois, une fois à 9 heures pour le réchauffer, ce qui échoue 80% du temps, mais au moins, il réchauffe le serveur et une heure plus tard, ce qui fonctionne presque toujours.Comment réchauffer une base de données SQL Server en cours de sommeil

Je préfère ne pas l'exécuter deux fois car c'est un gros travail et beaucoup de CPU. Des idées?

Répondre

13

Quelle version de SQL Server est-ce? Il semble que la base de données ait le paramètre Auto Close activé, ce qui est la valeur par défaut pour EXPRESS mais peut mener à un comportement comme celui-ci.

+2

J'utilisais en effet SQLExpress, j'ai trouvé le réglage mais en faisant un clic droit sur le DB -> Propriétés -> Options et le mettre à false. Merci, les doigts traversent cela le fixe :) –

+0

+1 merci. Par intérêt, pourquoi ce paramètre est-il activé par défaut? Cela ne semble pas être avantageux pour quiconque. – theyetiman

1

Pourriez-vous planifier une requête 30 minutes avant que votre processus de génération s'exécute pour «réchauffer» le serveur?

Aussi - cette base de données fonctionne-t-elle sur un serveur ou un bureau? Si c'est un bureau, vous pouvez vérifier les paramètres de gestion de l'alimentation.

10
ALTER DATABASE myDB SET AUTO_CLOSE OFF 
go 
+0

+1 pour la commande SQL. Cela va directement dans mon prochain script de mise à jour. – Fedearne