J'ai une procédure stockée que j'utilise pour remplir une table avec environ 60 colonnes. Je genereated 1000 déclarations exec qui ressemblent à ceci:Comment exécuter la procédure stockée 1000 fois
exec PopulateCVCSTAdvancement 174, 213, 1, 0, 7365
exec PopulateCVCSTAdvancement 174, 214, 1, 0, 7365
exec PopulateCVCSTAdvancement 175, 213, 0, 0, 7365
Chaque fois que la procédure stockée sera insérait allant de 1 à 3 000 dossiers (habituellement environ 2 000 dossiers). Le "serveur" exécute le matériel de bureau avec 4 Go de mémoire disponible sur un serveur OS. Le problème que j'ai est qu'après les 10-15 premières exécutions d'une moyenne de 1-2 secondes à chaque fois, les prochaines 10-15 semblent ne jamais finir. Est-ce que je fais cela correctement? Comment dois-je faire cela?
Merci! Top 10 serveurs:
LAZYWRITER_SLEEP
SQLTRACE_INCREMENTAL_FLUSH_SLEEP
REQUEST_FOR_DEADLOCK_SEARCH
XE_TIMER_EVENT
FT_IFTS_SCHEDULER_IDLE_WAIT
CHECKPOINT_QUEUE
LOGMGR_QUEUE
SLEEP_TASK
BROKER_TO_FLUSH
BROKER_TASK_STOP
Vous devez savoir ce qu'est le goulot d'étranglement. Que disent les waitstats DMV? –
Il y a plus de 400 lignes dans cette table. Quelque chose de spécifique je devrais poster? –
les chiffres sont cumulatifs, prenez donc un instantané dans une table temporaire, puis effectuez l'action qui génère la longue attente, puis comparez les deux pour voir quels types d'attente ont le plus augmenté. (Ou juste réinitialiser les chiffres dans le DMV à 0 avec DBCC SQLPERF ("sys.dm_os_wait_stats", CLEAR); 'si vous n'avez aucun outil de surveillance en s'appuyant dessus) –