SQl Server trotzdem immer der Fehler “Timeout ist abgelaufen. Der timeout abgelaufen"
Ich dachte, ich hätte ein sql-Fehler leckte in einem post hier nur ein wenig vor... (Fehlermeldung: Timeout ist abgelaufen. Das Zeitlimit wurde vor Abschluss des Vorgangs oder der server antwortet nicht.") Ich versuche, diese laufen mit der database tools in visual studio... nicht das management studio, und nicht den client-code/ADO (noch) nicht. Ich schrieb eine ziemlich einfache Abfrage, die verwendet eine Reihe von benutzerdefinierten Funktionen... die Funktionen, sowie die Teile der Abfrage wurden getestet und alle laufen gut, aber die Abfrage unten mal aus.. das läuft genau wie eingegeben in Management Studio, und dauert etwa 4 Minuten. Wie ich bereits in meinem anderen post, ich habe die Einstellung unter Extras>Optionen>Designer>"Override connection-string time - out-Wert" 120 Sekunden nach dieser Veröffentlichung, aber... es immer noch Timeout nach 30 Sekunden. Hinzufügen der ISNULL-in dieser neuesten version ist der Wandel, es läuft im management studio.
SELECT Symbol, LatestDate
FROM (SELECT Symbol, ISNULL(dbo.LatestDateInDailyPricingVolBySymbol(Symbol), '1/1/1900') AS LatestDate FROM tblSymbolsMain) AS T2
WHERE (LatestDate < dbo.RecentTradingDateByNumber(3))
Die Allgemeine Idee ist, um wieder eine Teilmenge von Lager-Symbole, die nicht über eine entsprechende Daten-Punkt in meiner täglichen Preistabelle für mindestens 3 Tage. Irgendwelche Abnehmer? Vielen Dank an alle.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ohne Bezug auf dein timeout;
Verwenden Sie das sql-management-Konsole, um Ihre Abfrage ausgeführt? Wenn das so ist, wenn eine Verbindung mit der Datenbank es wird eine Schaltfläche Optionen, die es einem ermöglicht, zum festlegen des timeouts.
Auch, wenn in der Abfrage-Fenster mit der rechten Maustaste und wählen Sie "Abfrage-Optionen"....
0 bedeutet unbegrenzt, ich würde prüfen, ob diese. 4 Minuten ist eine lange Zeit, vielleicht die Abfrage umgestaltet werden kann, um schneller zu laufen?
Wenn Sie diese innerhalb von Visual Studio mit C# die Standard-Befehls-timeout beträgt 30 Sekunden. Ändern Sie es, indem Sie den Befehl mal aus:
Wenn eine Abfrage so lange dauert, von der Zeit, dann ist es wahrscheinlich etwas falsch. Ich würde deklarieren Sie eine variable zum speichern der RecentTradingDateByNumber. Also es sieht wie folgt aus:
Sehen Sie die Ausführung in management studio gehen Sie auf "Abfrage/Tatsächlichen Ausführungsplan Einschließen".
Wenn Sie wollen auch, um zu sehen, den Verkehr von der Abfrage die Nummern wählen usw. Sie können auch den client-Statistiken. "Abfrage/clientstatistiken"
Wenn Sie mehr wissen wollen, Informationen über die Prüfung der Ausführung von Abfragen finden Sie unter
hier
Es mir sorgen, dass Sie Ihre routine dauert 4 Minuten, um mit zu beginnen. Das scheint wie eine ziemlich einfache Abfrage, vorausgesetzt, die Funktionen tun, was Sie scheinen zu tun, und mit der Indizierung und entsprechende Tisch-design, sollte es wieder viel schneller als die.
Haben Sie sich den Ausführungsplan für diese Abfrage:
Skalare Funktionen können performance-Probleme, wenn man immer wieder auf Sätze mit einer großen Anzahl von Zeilen, und auch verletzt, sargability.