Priorité d'une requête dans MS SQL

y a-t-il un moyen de dire à MS SQL qu'une requête n'est pas trop importante et qu'elle peut (et devrait) prendre son temps?

de même, y a-t-il un moyen de dire à MS SQL qu'il devrait accorder une plus grande priorité à une requête?

22
demandé sur AakashM 2008-09-14 01:11:30

3 réponses

pas dans les versions inférieures à SQL 2008. Dans SQL Server 2008 il y a le régulateur de ressources. En utilisant cela, vous pouvez affecter les logins aux groupes basés sur les propriétés de la connexion (nom de connexion, nom de l'application, etc). Les groupes peuvent ensuite être affectés à des bassins de ressources et à des limites ou restrictions I. T. O. les ressources peuvent être appliquées à ces pools de ressources

18
répondu GilaMonster 2008-09-15 18:29:31

SQL Server n'a pas encore de régulateur de ressources. Il existe une option appelée QUERY_GOVERNOR_COST_LIMIT, mais ce n'est pas tout à fait ce que vous recherchez. Et il empêche les requêtes d'exécuter en fonction du coût plutôt que de contrôler les ressources.

2
répondu Kilhoffer 2008-09-13 21:45:43

Je ne suis pas sûr que ce soit ce que vous demandez, mais j'ai eu une situation où un simple clic D'interface utilisateur a ajouté 10.000 enregistrements à une file d'attente d'e-mail (beaucoup de données dans le corps). L'e-mail a été envoyé au cours des jours suivants afin qu'il n'ait pas besoin d'être une priorité élevée, en fait, il allait bloquer le serveur à chaque fois que cela se produisait.

j'ai divisé la procédure en 10 000 appels, a couru le processus sur l'INTERFACE utilisateur dans un thread différent (faible priorité) et mis en veille pendant une seconde après l'exécution de procédure. Ça a pris du temps, mais j'avais un contrôle très granulaire sur ce qu'il faisait.

btw, ce n'était pas du spam, alors ne me flame pas en pensant que c'en était un.

1
répondu Dan Williams 2008-09-15 13:46:46