9 votes

Existe-t-il un moyen de faire une pause ou d'attendre quelques instants à partir d'un script ?

Je suppose que ce que je m'apprête à demander relèverait typiquement du domaine des "mauvaises pratiques", mais je veux demander quoi qu'il en soit parce que cette fonctionnalité est utile pour diagnostiquer les problèmes et évaluer les scripts de longue durée.

En bref, existe-t-il une fonction intégrée au serveur SQL que je pourrais appeler et qui me permettrait de faire une "pause" pendant une courte période de temps ?

J'ai un processus SSIS nocturne qui, après avoir exporté des données, génère divers sous-ensembles de données statistiques. Lorsque j'ai des problèmes avec les temps d'exécution du paquet SSIS, j'ai une série de procédures stockées de diagnostic que je peux appeler et qui m'aident à diagnostiquer à quel moment l'exportation/l'insertion en vrac prend exceptionnellement du temps à s'exécuter.

Pendant la seconde moitié de mon processus SSIS, où je génère des données statistiques, il serait vraiment bénéfique que je puisse analyser où le processus peut s'enliser ou analyser la vitesse à laquelle il peut modifier les données dans mes tableaux de données. La plupart des procédures statistiques commencent par l'insertion des données dans un tableau qui est parcouru par des boucles WHILE et mis à jour lorsque les conditions nécessaires sont remplies.

Je peux facilement interroger mes données pour capturer une métrique spécifique pendant que mes procédures stockées statistiques s'exécutent. Ce que je voudrais faire, c'est saisir cette mesure, attendre exactement une seconde (ou un laps de temps spécifique) et saisir à nouveau la mesure afin de pouvoir les comparer.

En étant capable d'implémenter une 'pause', je peux créer des scripts de diagnostic plus robustes qui indiquent combien d'insertions, de mises à jour ou de calculs sont exécutés par seconde et peuvent ainsi estimer quelles parties de mes procédures les plus importantes prennent le plus de temps.

Je suppose qu'il existe des outils de diagnostic que je peux utiliser à partir de SQL Server Management Studio. J'admets que je n'ai pas bricolé avec tout cela. Cependant, en général, s'il existe un outil dans SSMS, la plupart des fonctionnalités du back-end peuvent être imitées par une forme de script fantaisiste. Une autre limite possible à l'utilisation des diagnostics intégrés est que je préférerais exécuter ces mesures pendant que le paquet SSIS est en cours d'exécution et pas seulement pendant que je teste les procédures stockées qui s'exécutent dans le paquet.

Merci pour toute solution ou conseil ! Cette demande n'est pas nécessaire à 100%, mais mes paquets SSIS nocturnes sont de plus en plus volumineux et je dois commencer à peaufiner les "roues de frottement" que j'ai pu ignorer dans le passé.

17voto

ypercube Points 62714

Vous cherchez peut-être DÉLAI D'ATTENTE

8voto

gbn Points 197263

Vous utiliseriez le DÉLAI D'ATTENTE déclaration

8voto

Yogesh Bhadauirya Points 575

Sélectionnez Getdate() -- attendez 10 secondes pour lancer une autre commande

WAITFOR DELAY '00:00:10' ; --acceptation de la valeur hh:mm:ss

Sélectionnez GetDate()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X