2017-11-17 2 views
-1

Ich habe eine Webanwendung, in der ich einen Bericht durch Ausführen einer gespeicherten Prozedur anzeigen. Die Ausführung dauert zu lange, aber nach dem Anzeigen des Berichts bedeutet dies, dass die App nach Abschluss der Ausführung der gespeicherten Prozedur sehr langsam wird. Selbst wenn ich zu einer anderen Seite navigiere, dauert es ziemlich lange.Webanwendung wird langsam nach dem Ausführen der gespeicherten Prozedur

Ist es nach dem Ausführen der gespeicherten Prozedur möglich, ist immer noch etwas hinter sich. Die noch gespeicherte Prozedur läuft oder Tabellen sind gesperrt oder so ähnlich. Wie finde ich den Grund heraus?

Mein Server ist SQL Server 2008R2.

+0

Wie sieht Ihre gespeicherte Prozedur aus? – LONG

+0

Tritt es auf, wenn Sie es im Debugger durchlaufen? –

+0

können Sie sp_who auf db versuchen, um zu sehen, ob es Blockierungsabfragen gibt, aber ansonsten gibt es nicht genug Details, um etwas zu tun, außer Raten (Ausführungsplan schlecht oder aus einem anderen Grund zwischengespeichert) –

Antwort

0

Möglicherweise müssen einige Diagnose laufen, würde ich eher folgen einem schrittweisen Ansatz

1) Überprüfen Sie für blockier Prozesse

SELECT * FROM dbo.sysprocesses WHERE blocked <> 0; 
SELECT * FROM dbo.sysprocesses WHERE spid IN (SELECT blocked FROM dbo.sysprocesses where blocked <> 0) 

2) Überprüfen Sie für jede langsam laufenden abfragt

SELECT r.session_id 
    ,s.TEXT 
    ,r.[status] 
    ,r.blocking_session_id 
    ,r.cpu_time 
    ,r.total_elapsed_time 
FROM sys.dm_exec_requests r 
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s 

3) Führen Sie cmd in Windows und überprüfen Sie für Webservices Status

sc query <servicename> 
Verwandte Themen