2009-09-24 6 views
0

Afin de déterminer la «vivacité» d'un serveur SQL distant, j'ai besoin d'adresser périodiquement le serveur avec une requête.Une requête simple pour vérifier la vivacité du serveur

Je suis à la recherche d'une requête qui va générer un minimum de travail sur le serveur, et un minimum de surcharge de communication (à la fois pour la requête et la réponse).

La requête devrait fonctionner sur SQL Server 2005 et 2008 au moins, et ne devrait pas supposer l'existence de certaines bases de données ou tables, et ne devrait pas générer d'erreurs.

Répondre

6

Que diriez-vous:

select 1 
0
SELECT COUNT(*) FROM "smallest table you have access to" 
+0

Cela introduit des dépendances de table et de base de données. –

1
SELECT 1+1 

si vous devriez être en mesure de vérifier si le serveur répond sans effectuer une requête.

0

select SPID de master..sysprocesses

0
SELECT GetDate() 
7

Andrejs Cainikovs réponse select 1 est bon. Il y a quelques jours, j'ai exécuté un profileur SQL sur un serveur SQL Server 2005, et l'une des instructions SQL que j'ai vues tous les deux secondes était: SELECT N'Testing Connection...' qui a l'avantage de la documentation pour quelqu'un observant le serveur. Alors peut-être quelque chose comme:

select 'Testing connection from server Y for application X' 

Un peu plus de données devrait être mis sur le fil, mais il permettrait à tout le monde de profilage du serveur de savoir exactement pourquoi ces sélections ont leur apparition.

+0

Envisagez d'ajouter @@ SERVERNAME à votre SELECT. –

+0

@Rod: Pourquoi? Je présume que la routine d'appel sait déjà quel serveur elle appelle. –

0
SELECT @@SERVERNAME as ServerName 
Questions connexes