Overblog Folge diesem Blog
Edit post Administration Create my blog
Blog von Olaf Helper

Laufende Prozesse einschließlich deren Sql Statements ermitteln

20. Juli 2009 , Geschrieben von Olaf Helper Veröffentlicht in #T-SQL

„Die Programme laufen heute wieder so träge, es dauert Alles Ewigkeiten“. Ein durchaus typischer Anruf eines Anwenders, der einen vermuten lässt, dass der Mircosoft Sql Server ausgelastet ist. Da fragt man als DBA sich wieder, was da alles auf dem Sql Server läuft und ihn der auslastet.

Auskunft kann hier der Server selbst geben. Über die „Dynamic Management Views (DMV)“ (ab Sql Server 2005) kann man die aktuellen Daten zu den Prozessen inkl. den ausgeführten Sql Statements ermitteln. Voraussetzung ist natürlich, das man sich überhaupt noch verbinden und der Sql Server antworten kann; aber dazu gibt es zur Not ja noch die DAC = Dedicated Admin Connection.

 

 -- Ermittelt alle laufende Prozesse mit deren 
 -- Sql Statements 
 SELECT PRO.spid, PRO.loginame, PRO.hostname, PRO.program_name, 
  DB.name AS DatabaseName, PRO.open_tran, PRO.blocked, 
  REQ.command, SQL.text AS SqlStatement, 
  SES.prev_error, SES.row_count,  
  REQ.wait_resource, REQ.wait_time 
 FROM sys.sysprocesses AS PRO 
  CROSS APPLY sys.dm_exec_sql_text(PRO.sql_handle) AS SQL 
  LEFT JOIN sys.sysdatabases AS DB 
   ON SQL.dbid = DB.dbid 
   LEFT JOIN sys.dm_exec_requests AS REQ 
  ON PRO.request_id = REQ.request_id 
   AND PRO.spid = REQ.session_id 
   LEFT JOIN sys.dm_exec_sessions AS SES 
   ON REQ.session_id = SES.session_id 

Diesen Post teilen

Repost 0

Kommentiere diesen Post

Ebis 07/23/2009 16:41

Hi Olaf,
Anstatt SQL.Text könnte man das auch als xml- ausgeben lassen
(SELECT text AS [text()]
FROM sys.dm_exec_sql_text (PRO.sql_handle)
FOR XML PATH (''), TYPE ) AS SqlStatement

das behält die Zeilenumbrüche bei...

Olaf Helper 07/23/2009 19:20


Hallo Ebis,

nett, das Du Dich hierher verirrt hast ;-).

Danke für den Hinweis. Wenn man die Statements exportieren will, um sie in Ruhe zu sichten, ist das wirklich die besser lesbarere Variante.

Für eine schnelle Übersicht ist es als Zeilendarstellung mit unter übersichtlicher; dumm nur, das man nur einen Teil der Statements im SSMS sieht.

Mit den beiden Varianten kann man aber nun sich aussuchen, wann man welche Darstellung haben möchte.
Bis dann im Entwickler-Forum.
Olaf