2016-09-21 4 views
2

Ich habe eine lange Abfrage in SQL Server 2014 ausgeführt. Es ist eine gespeicherte Prozeduraufruf. Im Aktivitätsmonitor wird angezeigt. Die Detailansicht bietet das aktuell ausgeführte SQL, das die EXEC-Anweisung ist. Die Befehlsspalte sagt, dass es ein UPDATE ist. Die gespeicherte Prozedur hat mehrere UPDATE-Anweisungen. Woher weiß ich, welcher gerade ausgeführt wird? Gibt es auch eine Möglichkeit, die gespeicherten Prozedurparameter zu kennen?Wo genau ist SQL Server fest?

+2

Der erste Teil ist ein Duplikat http://stackoverflow.com/q/9293429/73226 ist. Der zweite Teil wird nicht ausgeführt, solange er bereits ausgeführt wird, außer wenn der Plan im Plancache für diese Ausführung kompiliert wurde und Sie ihn dann aus dem XML abrufen können. –

Antwort

1

Zu lange um zu kommentieren und dachte, es beantwortet Sie nicht Frage, kann es Ihnen einige Orte zu beginnen.

  1. Töten Sie den Proc, und verwenden Sie SQL Profiler, um den Prozess zu verfolgen, während Sie ihn ausführen. Dies ist ressourcenintensiv obwohl und Option 2 ist besser IMHO.
  2. Verwenden Sie Adam Machanic's sp_whoisactive Probleme zu lösen. Es gibt viele Tutorials mit verschiedenen Optionen und Anwendungsfällen. Ein beliebter ist:

exec dbo.sp_WhoIsActive @get_plans =1, @get_additional_info = 1

Verwandte Themen