Wenn mein C # bei einem Aufruf einer gespeicherten Prozedur das Zeitlimit überschreitet, wird die Prozedur fortgesetzt?

8

Ich habe nur eine allgemeine Art von Frage. Wenn ich über eine C # -Anwendung verfüge, die eine gespeicherte SQL Server-Prozedur aufruft und die C # -Anwendung abläuft, wird der auf dem Server ausgeführte Vorgang bis zum Abschluss fortgesetzt?

    
Wizaerd 21.04.2016, 14:42
quelle

5 Antworten

2

Kurze Antwort ist ja .... hier sind einige Informationen, um meinen Anspruch zu sichern

Es gibt tatsächlich mehrere Stellen, an denen eine Anwendung eine Zeitüberschreitung haben kann, aber eine Zeitüberschreitung bei der Befehlsausführung ...

Ausführungszeit für Befehlsausführung - Diese Eigenschaft ist die kumulative Zeitüberschreitung für alle Netzwerklesevorgänge während der Befehlsausführung oder Verarbeitung der Ergebnisse. Ein Zeitlimit kann immer noch auftreten, nachdem die erste Zeile zurückgegeben wurde, und enthält keine Benutzerverarbeitungszeit, sondern nur die Netzwerklesezeit.

Ein Befehl wird nicht automatisch zurückgesetzt, wenn eine Zeitüberschreitung auftritt. Dies erfordert eine Transaktion um den Code herum, wenn das Zeitlimit überschritten wird.

Wenn ein Timeout auftreten kann, wenn Zeilen zurückgegeben werden, bedeutet dies, dass jederzeit ein Timeout auftreten kann. C # teilt SQL Server nicht mit, dass er den Befehl nicht mehr ausführen soll. Dazu können Dinge wie das Umbrechen des Befehls in einer Transaktion

getan werden

Quelle: Ссылка ... und Erfahrung

    
Micah Armantrout 21.04.2016 14:56
quelle
1

Nein. Unten ist eine Reproduktion. Wenn die Zeitüberschreitung auftritt, wird der laufende Prozess beendet und sofort gestoppt. Wenn Sie keine Transaktion angegeben haben, wird die Arbeit, die vor dem Zeitlimit in der gespeicherten Prozedur ausgeführt wurde, beibehalten. Wenn die Verbindung zum Server durch äußere Gewalt unterbrochen wird, beendet SQL Server den laufenden Prozess.

%Vor%

erzeugt die folgende Ausgabe

%Vor%

, obwohl das Ausführen der gespeicherten Prozedur aus Management Studio 6 Zeilen in dem Zeitrahmen von einer Minute hinzufügt.

    
Bruce Dunwiddie 21.04.2016 21:46
quelle
0

Wenn Sie die SQlCommand-Klasse verwenden, wird nach dem Timeout der Anwendung die Ausführung der Abfrage zurückgesetzt.

    
Jorge Serrano 21.04.2016 14:47
quelle
0

Meine Gedanken dazu sind, dass es um die Verbindung geht, die durch den Aufruf der Prozedur geöffnet wird. Wenn Ihr Code innerhalb eines using-Blocks ausgeführt wird oder wenn es Müll ist, denke ich, dass die Ausführung des SP zurückgerollt wird.

    
Karoui Haythem 21.04.2016 15:33
quelle
0
%Vor%     
Michael Rugi 07.01.2018 07:10
quelle