none
Prozedure bricht nach 10min. ab! RRS feed

  • Frage

  • Hallo,

    Wenn die Zeit unter 10min. liegt, läuft die Prozedur (erstellt über 3.000.000 Datensätze) durch. Wehe es dauert länger, dann wird diese Prozedur abgebrochen. Woran liegt das?

    Gibt es dafür eine Einstellung beim SQL-Server 2008?

    Herzlichen Gruß
    Herbert


    • Bearbeitet Billardheld Donnerstag, 29. März 2012 12:30 andere Frage entfernt
    Donnerstag, 29. März 2012 08:21

Antworten

  • Hi,

    womit führst du die Prozedur denn aus? In den Verbindungsoptionen zum SQL Server kann eine Timeout eingestellt werden.

    Grüße

    Oliver

    Jetzt habe ich, den Wert mal erhöht. Stimmt

    zu Finden ist es mit SQL Management auf den Server mit der rechten Maustaste klicken. Im Kontextmenü auf Eigenschaften. Im neuen Fenster die Verbindungen markieren und bei Remoteverbindungen mit diesen Server zulassen den Timeout statt 600 auf höheren Wert gestellt. Kein Abbruch mehr.

    • Als Antwort markiert Billardheld Donnerstag, 29. März 2012 12:27
    Donnerstag, 29. März 2012 12:27

Alle Antworten

  • Hi,

    womit führst du die Prozedur denn aus? In den Verbindungsoptionen zum SQL Server kann eine Timeout eingestellt werden.

    Grüße

    Oliver

    Donnerstag, 29. März 2012 09:00
  • Hi,

    mit Microsoft SQL Server Management Studio.

    Was hätte die Verbindungsoption mit dem Abbruch der Prozedur zu tun!? Werde mir das mal anschauen...steht auf 600 Sekunden = 10 Min.

    Gruß
    Herbert



    • Bearbeitet Billardheld Donnerstag, 29. März 2012 11:40 Falscher Wert
    Donnerstag, 29. März 2012 09:40
  • Hi,

    im Management Studio gibt es in den Optionen eine Einstellungsmöglichkeit für den Timeout. Dort einmal prüfen ob evtl. etwas hinterlegt ist.

    Grüße

    Oliver

    Donnerstag, 29. März 2012 09:44
  • Hi,

    Habe da nichts gefunden. Sollte aber nicht vom Management Studio abhängen. Das gleiche Problem liegt an, wenn ich die Prozedur über Webserver (ASPX-Script) starte. Das muss direkt mit dem SQL-Server zu tun haben.

    Seltsamerweise läuft im Management Studio die Zeit unten in der Statuszeile weiter. Das die Prozedur nicht mehr läuft, sehe ich in an der Anzahl der erstellten Datensätze.

    Gruß
    Herbert

    Donnerstag, 29. März 2012 10:32
  • Hi,

    womit führst du die Prozedur denn aus? In den Verbindungsoptionen zum SQL Server kann eine Timeout eingestellt werden.

    Grüße

    Oliver

    Jetzt habe ich, den Wert mal erhöht. Stimmt

    zu Finden ist es mit SQL Management auf den Server mit der rechten Maustaste klicken. Im Kontextmenü auf Eigenschaften. Im neuen Fenster die Verbindungen markieren und bei Remoteverbindungen mit diesen Server zulassen den Timeout statt 600 auf höheren Wert gestellt. Kein Abbruch mehr.

    • Als Antwort markiert Billardheld Donnerstag, 29. März 2012 12:27
    Donnerstag, 29. März 2012 12:27
  • Hallo Herbert,

    damit ist zwar das Symptom behoben, nicht jedoch die Ursache.

    3 Mio. Datensätze sind für den SQL Server nicht wirklich ein Problem. Im Normalfall sollte das eine Frage weniger Sekunden sein.

    Es bringt für das Gesamtsystem sicherlich mehr, wenn die Laufzeit der Prozedur reduziert wird statt den Schwellwert zu erhöhen...

    Wenn in der Prozedur allerdings Schlüsselworte wie CURSOR oder WHILE stehen, dann kann ich nur hoffen, daß die Anzahl der Datensätze eher statisch und nicht stetig wachsend ist. Anderenfalls wird die Erhöhung des Schwellwertes zu einer regelmäßigen Aufgabe. Gefolgt von Erhöhung des Plattenplatzes (z.B. auf Grund zu großer TempDB und/oder Log) gefolgt von Speichererweiterug durch "out of memory" exception.

    Freitag, 30. März 2012 07:53
  • Diese Sache steht in Zusammenhang mit dem gelösten Threads "Suche Denkanstoß bzw. Lösung für folgende Aufgabenstellung".

    Richtig, es werden diese Schlüsselworte verwendet. Durch die Prozedur erstellte Tabelle wird nur dann komplett neu angelegt, wenn sich Routen ändert. Eine Idee, wie ich hier ohne Cursor auskomme habe ich im Moment nicht.

    Das mit Log hatte ich schon und wird daher täglich automatisch verkleinert.

    Das Problem hatte ich vorher nicht. Erst seit der Server komplett virtualisiert worden ist und jetzt 2 bis 3 mal so lange braucht, wie vorher. Aber das ist jetzt ein anderes Thema.


    • Bearbeitet Billardheld Freitag, 30. März 2012 08:34 Falscher Link
    Freitag, 30. März 2012 08:31
  • Das kommt mir bekannt vor :-)
    http://www.insidesql.org/blogs/cmu/sql_server/routenfindung-in-graphen

    Wo kommt jetzt aber der Cursor ins Spiel? Aus dem alten Thread habe ich entnommen, dass die Laufzeit eigentlich nur einige Sekunden war.

    Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    www.insidesql.org/blogs/cmu

    Freitag, 30. März 2012 11:45
    Beantworter
  • Hallo Christoph,

    Das ist richtig mit der Zeit, aber nicht für den nachfolgende Teil, der braucht länger. Das habe ich auch in den damaligen Thread geschrieben.

    .....Da ich die Routenliste aus den einzelnen Datensätze benötige, also Hops/Step (zusätzliche Spalte "Route-Nr") jeweils als eigenen Datensatz - durchlaufe ich diese Datensätze noch mal um eine entsprechende Tabelle zu erstellen bzw. erweitern. Diese benötigt dann 1-5 min. um 2.400.000 Datensätze aus den Routenlisten zu erstellen. Denke hier ist noch Optimierung angesagt, Cursor sind sehr langsam :-( .....

    Die Datensätze sind jetzt auf über 3.200.000 angewachsen.  ;-)

    Schönes Wochenende euch allen.

    Herzlichen Gruß
    Herbert

    Freitag, 30. März 2012 12:12