2010-10-18 3 views
2

Je voulais savoir si nous pouvions temporiser une requête sql. Dans le sens, cela suppose que j'ai une requête sql dont la sortie n'est utile que si elle donne la sortie en 10 minutes, après quoi même si elle sort les résultats ne me sert à rien.Délai d'une requête

Ce que je veux faire est que si la requête prend plus de 10 minutes pour faire le traitement, alors il devrait juste se tuer.

Y a-t-il un moyen possible de le faire?

Un exemple sera très utile.

Permettez-moi de savoir si mes pensées ne sont pas comprehendible ..

+0

(a) vous avez une base de données très importante, (b) vous avez la mère de toutes les requêtes (peu probable) , ou (c) vous devez réévaluer vos index. Mon argent est sur (c) –

+0

10 min était juste un val au hasard j'ai pris par exemple .. vous pouvez penser à tout moment – Egalitarian

+0

Si une requête prend plus de 30 secondes, je serais en regardant ... –

Répondre

4

est ici ce qu'il ressemblerait à la si une requête prend 10 minutes, puis SqlCommand.CommandTimeout

SqlCommand cmd = new SqlCommand(); 
    cmd.CommandText = "SELECT blah FROM Categories ORDER BY CategoryID"; 
    cmd.CommandTimeout = 600; // 10 minutes = 600 seconds 
    // Caveat: it you need a timeout value of more than 30 - 60 seconds 
    //   perhaps time to look at why it takes so long... 
0

Vous pouvez définir la propriété CommandTimout de l'objet Command à 10 minutes. Lorsque la commande expire, SQL Server remarque que la connexion est supprimée et annule la requête.

+0

pouvez-vous donner un exemple .. sera de beaucoup d'aide – Egalitarian

Questions connexes