2009-07-14 7 views
3

Ich arbeite an einer Flex-Anwendung, die über Flash Remoting mit ColdFusion 8 mit einer SQL Server 2005-Datenbank verbunden ist. Die meiste Zeit läuft alles gut. Von Zeit zu Zeit dauert es jedoch außergewöhnlich lange, bis SQL Server Daten aus einem Aufruf einer gespeicherten Prozedur an ColdFusion zurückgibt. Die Rückgabe von Daten von CF nach Flex ist sehr schnell. Wenn dies geschieht, kann ich den gleichen Aufruf von Management Studio auf dem SQL Server oder einer ColdFusion-Seite auf dem CF-Server ausführen und sofort Ergebnisse erhalten. Das letzte Auftreten des Problems dauerte ungefähr 90 Sekunden, um Daten an CF zurückzugeben. Während des 90-Sekunden-Fensters konnte ich die gespeicherte Prozedur mehrmals in Management Studio ausführen.SQL Server benötigt viel Zeit, um Daten an ColdFusion zurückzugeben, wenn Flex verwendet wird

Ich habe versucht, verschiedene Treiber zu verwenden, und das scheint keine Rolle zu spielen. Ich habe auch die Serverleistung im Auge behalten und dabei nichts Ungewöhnliches bemerkt. Hat jemand dieses Verhalten schon mal gesehen? Irgendwelche Ideen, wonach ich suchen sollte.

+0

Wo befindet sich der SQL Server? Auf demselben Computer wie Ihr CF-Anwendungsserver? Fernbedienung dazu? –

+1

Klingt nach einem Nebenläufigkeits-/Sperrproblem für mich ... – Tomalak

Antwort

1

Während es langsam arbeitet, können Sie "sp_who2" gegen Ihren SQL Server ausführen? Wenn es sich um ein Blockierungsproblem handelt, sehen Sie Zeilen mit einem Wert in der Spalte "BlkBy", was bedeutet, dass sie darauf warten, dass ein anderer Prozess abgeschlossen wird, bevor sie fortfahren können.

Wenn das der Fall ist, dann gibt es andere Fehlersuche, damit Sie herausfinden können, was die Blöcke verursacht. This article bietet eine Übersicht über die Blockierung und Fehlerbehebung. Wenn das Ihr Problem ist, aktualisieren Sie bitte Ihre Frage und fügen Sie weitere Details hinzu, und wir können Ihnen helfen, von dort zu gehen!

1

Sind Sie absolut sicher, dass die Abfrage, die in der SP ausgeführt wird, jedes Mal gleich ist? Ist es beispielsweise möglich, dass die Abfrage bei einer Verlangsamung eine andere Sortierreihenfolge aufweist? Möglicherweise 9 mal von 10, die Abfrage kehrt schnell zurück, und das 10. Mal ist langsam b/c die Daten, die Sie bekommen, wird von einer Spalte, die nicht indiziert ist sortiert?

In diesen Situationen würde ich versuchen, eine SQL-Trace einzurichten (mit SQL Profiler) und lassen Sie es für eine Weile laufen. Sobald die Situation eintritt, lassen Sie sie durch und analysieren Sie dann die Ablaufverfolgung. Bestätigen Sie zweifelsfrei, dass die Abfrage, die ausgeführt wird, die gleiche ist wie andere Ausführungen desselben sp

Verwandte Themen