stefan Luger: ASP ist langsam --> Tools zum messen?

Hallo,
ich habe hier das Problem, das ich in meiner Firma Scripte von meinen Vorgaengern habe. Leider bekomme ich im Moment immer oefters time outs. Nun wuerde ich gerne feststellen, woran das genau liegt.
Dazu suche ich ein Tool, das ich am besten per include oder sowas einbinden kann (an verschiedene Stellen des Scriptes). Damit wuerde ich gerne testen, welcher teil des Scriptes besonders viel Zeit braucht.
Ebenso interessant ware ein Tool, um die DB Connection und Abfrage zu ueberwachen.

Gibt es sowas? Habe leider nichts im Netz gefunden, fuer Tipps waere ich dankbar.

Ebenso fuer alles, was das ASP Script schneller macht (kann hier leider das Script nicht posten, da es eben viele verschiedene Scripts sind...)

Stefan

  1. Hallo Stefan!

    ... im Moment immer oefters time outs. Nun wuerde ich gerne feststellen, woran das genau liegt.

    ..

    Damit wuerde ich gerne testen, welcher teil des Scriptes besonders viel Zeit braucht.

    Um zu testen, was wie lange braucht, könntes Du im Script an mehreren Stellen die momentane Zeit am Server ausgeben lassen (ausser die Seite wird erst vollständig in Variablen erstellt und erst dann ausgegeben)
    Kenne leider sonst keine Möglichkeit - wie viele User greifen da denn auf die Seiten zu?

    Ebenso interessant ware ein Tool, um die DB Connection und Abfrage zu ueberwachen.

    Ist natürlich eine Ferndiagnose - Timeouts hatte ich bisher nur, wenn die Abfrage nicht optimiert war oder die Verbindung zur Datenbank über eine langsame Verbidnung lief.
    Lass Dir doch den Text der Abfrage ausgeben und teste wie lange das dauert, wenn Du die selbe Abfrage von einem Client z.B. mit MsQuery absetzt.
    Es fehlen für konkretere Hinweise Angaben, wie etwa welche Datenbank verwendet wird, wie die Fehlermeldung mit dem Timeout genau lautet, Struktur der Datenbank, ..

    Viele Grüße
    H-P Ortner

    1. Servus,

      Um zu testen, was wie lange braucht, könntes Du im Script an mehreren Stellen die momentane Zeit am Server ausgeben lassen (ausser die Seite wird erst vollständig in Variablen erstellt und erst dann ausgegeben)

      Ja, die Seiten werden erst dann ausgegeben, wenn sie komplett sind, kenne sonst keine Moeglichkeit. Kannst Du mir sagen, wie das geht? (BEsonders bei langen Listen aus DB waere es intressant)

      Kenne leider sonst keine Möglichkeit - wie viele User greifen da denn auf die Seiten zu?

      Unterschiedlich, die Seiten im Netz bis zu 20 gleichzeitig, die internen Seiten (internes Informationssystem auf ASP) bis zu 10 User.

      Es fehlen für konkretere Hinweise Angaben, wie etwa welche Datenbank verwendet wird, wie die Fehlermeldung mit dem Timeout genau lautet, Struktur der Datenbank, ..

      Datenbanken sind auf Access2000. Die Struktur ist eben unterschiedlich (da eben verschiedene Seiten Timouts haben: teilweise sehr grosse DB (viele Eintraege), aber meistens mit Querverweisen--> Wenn eine KAtegorie oft verwendet wird, steht nicht der NAme der Kategorie da, sondern eine Nummern, die dann in einer anderen Tabelle ausgelesen wird.)
      Die Fehlermeldung ist einfach> Server Tipmout (Meldung Nummer 0113 glaube ich). Microsoft empfielt hier das hochsetzen des Timeouts, ist aber keine LOesung, wenn man so lange auf das Ergebnis der Seite warten muss....)

      Wie kann ich denn die VErbimdung optimieren? Was ist die schnellste Art der Verbindung?

      Schoene Gruesse
      Stefan

      1. Hi,

        Um zu testen, was wie lange braucht, könntes Du im Script an mehreren Stellen die momentane Zeit am Server ausgeben lassen (ausser die Seite wird erst vollständig in Variablen erstellt und erst dann ausgegeben)
        Ja, die Seiten werden erst dann ausgegeben, wenn sie komplett sind, kenne sonst keine Moeglichkeit. Kannst Du mir sagen, wie das geht? (BEsonders bei langen Listen aus DB waere es intressant)

        Da gibt es bei aspheute einen schönen Artikel und die nötigen Tools, um innerhalb von ASP-Seiten Debuginformationen auszugeben, welche dann via DebugView angezeigt werden. Anhand dieser Informationen kannst du dann erkennen, was wie lange dauert, ohne erst auf die Ausgabe im Browser zu warten.

        http://www.aspheute.com/artikel/20010423.htm

        hth
        bernd

        1. Danke fuer den Tipp,
          leider bin ich echt zu bloed, dass zu verwenden. HAst Du damit schon gearbeitet?

          Muss ich die .dll auf dem lokalen PC oder auf dem Webserver registrieren? Wo muss ich das Ueberwachungstool hinkopieren und ausfuehren? Muss ich die Trace oder traceinclude in die DAtei einbinden?

          Schoene Gruesse
          Stefan

          1. Hi,

            die aspdbg.dll auf den Rechner kopieren, wo auch der Webserver läuft (bspl. C:\Programme\ASPDebug\aspdbg.dll).
            Die Komponente musst Du dann registrieren "regsvr32.exe C:\Programme\ASPDebug\aspdbg.dll", damit auf diese
            zugegriffen werden kann (ActiveX).

            In deinen Seiten kannst Du dann eine kleine Funktion schreiben, in der das Objekt erzeugt und die Debuginformation
            ausgegeben wird.

            Beispiel : JScript - tracetest.asp

            <%@ language=jscript%>
            <%
            function Trace (sMsg)
            {
              var ASPTrace = Server.CreateObject("AspDbg.Trace");
              ASPTrace.Write('ASP: ' + sMsg);
            }

            Trace("ABC, die Katze geht im Schnee");
            Response.Write("Hallo Welt");
            Trace("Nachts sind alle Katzen grau");
            %>

            Soweit so gut. Die Debuginformationen erscheinen nicht im Browserfenster, da diese an das System weitergereicht werden.
            Um sich diese Meldungen anzusehen, muss während die ASP-Seiten abgearbeitet werden das Programm DebugView laufen.
            Dieses Programm kann die Debuganformationen anzeigen. Dabei ist es egal auf welchem Rechner es läuft, sofern Du dich
            mit dem Rechner, wo der Webserver läuft, verbinden kannst.

            Im DebugView-Fenster erscheinen die Meldungen "ABC, die Katze geht im Schnee" und "Nachts sind alle Katzen grau".
            Im Browser-Fenster hingegen erscheint nur "Hallo Welt".

            <img src="http://www.aspheute.com/artikel/Bilder/200104/20010423_2.png" border="0" alt="">

            R1 oder auch R2                                        R2
            ******************                                     ******************
            *                *                                     *  IIS           *
            *  Browser       *         2. "Hallo Welt"             *                *
            *                *<------------------------------------*                *
            ******************                                     ******************
                                                                       (aspdbg.dll)
                                                                            |
                                                                            |3. "Nachts sind alle Katzen grau"
                                                                            |1. "ABC, die Katze geht im Schnee"
                                                                            |
            R1/R2 oder ein ganz anderer Rechner                     R2      v
            ******************                                      ******************
            *  DebugView     *                                      *"ABC, die Ka..."*
            *                *<-------------------------------------*"Nachts sind..."*
            *                *                                      *                *
            ******************                                      ******************

            hth
            bernd

            1. HAllo,
              vielen Dank fuer die ausfuerliche Anleitung,
              aber irgendwie kommen die Meldungen bei mir nicht an.

              HAbe die dll auf dem Webserver registiriert, die Connection zum Webserver geht, habe dein script in eine DAtei kopiert und ausgefuehrt, aber in DebugView kommt nichts an.

              Schoene Gruesse
              Stefan

              1. Hi,
                stelle eben fest, dass irgenwelche Meldungen ankommen, aber nicht die, die ich haben will.
                stefan