Torsten Jägel: Ist ASP so langsam

Ich habe nur ein paar allgemeine Fragen zu ASP.
Ich muß eine Datenbank die auslesen, das habe ich bisher mit IDC/HTX Dateien getan.
Nun habe ich hier gelesen, daß diese Technik der letzte Müll ist und ASP alles besser kann.
Hab mich also hin gesetzt und die Datenbank mit ASP ausgelesen. Hat auch geklappt, nur dauerte der Aufbau der Seite 5 mal länger (handgestoppt).  Wenn ich nicht neben dem Server sitze sondern von Außerhalb zugreife ist dieses Verhältnis zwar nicht mehr  so kraß aber immer noch schlecht.
Wahrscheinlich habe ich auch das Skript noch nicht richtig optimiert, aber daß ich den Vorsprung von IDC/HTX aufhole glaube ich kaum.
Meine Frage: Muß ich mich mit so etwas abfinden, könnte es an der Datenbank liegen (Access über ODBC) ,
ist PHP3 eventuell schneller und wenn ja kann ich damit unter dem  IIS Access Datenbanken abfragen oder sollte wir uns einen SQL-Server zulegen, was natürlich die teuerste Lösung wäre.

Mir ist nach der Einarbeitung in ASP schon klar, daß es besonders im handling der Daten immense Vorteile gegenüber IDC/HTX hat die ich gerne nutzen würde, aber wenn es so langsam ist würde ich vielleicht auch darauf  verzichten.

Ich würde mich über Ratschläge sehr freuen.

By Torsten

  1. Hallo,

    Hab mich also hin gesetzt und die Datenbank mit ASP ausgelesen. Hat auch geklappt, nur dauerte der Aufbau der Seite 5 mal länger (handgestoppt).  Wenn ich nicht neben dem Server sitze sondern von Außerhalb zugreife ist dieses Verhältnis zwar nicht mehr  so kraß aber immer noch schlecht.

    ...nur ne kleine Frage: Lief der Webserver also auf dem selben Rechner wie auch der Browser? In diesem Falle hab ich bemerkt, daß es unter Windows einen *großen* Unterschied macht, ob man lokale cgi-Skripte mit Netscape oder mit IE aufruft. Ist eigentlich unlogisch, da ja das Skript eigentlich unabhängig vom Browser arbeiten sollte, und ich habe dafür bis heute auch noch keine 100%ig-einleuchtende Erklärung. Trotzdem - lokale cgi's unter Win laufen unter Netscape um mehr als Faktor 3 langsamer. Sobald Server und Client (Browser) getrennt sind, verschwindet nach meiner Erfahrung der Geschwindigkeitsunterschied. Vielleicht tritt bei Dir ein ähnliches Phänomen auf?!

    Viele Grüße

    Andreas

    1. ...nur ne kleine Frage: Lief der Webserver also auf dem selben Rechner wie auch der Browser? In diesem Falle hab ich bemerkt, daß es unter Windows einen *großen* Unterschied macht, ob man lokale cgi-Skripte mit Netscape oder mit IE aufruft. Ist eigentlich unlogisch, da ja das Skript eigentlich unabhängig vom Browser arbeiten sollte, und ich habe dafür bis heute auch noch keine 100%ig-einleuchtende Erklärung. Trotzdem - lokale cgi's unter Win laufen unter Netscape um mehr als Faktor 3 langsamer. Sobald Server und Client (Browser) getrennt sind, verschwindet nach meiner Erfahrung der Geschwindigkeitsunterschied. Vielleicht tritt bei Dir ein ähnliches Phänomen auf?!

      Viele Grüße

      Andreas

      Leider nein. Server und Browser sind auf unterschiedlichen Rechnern.

      Torsten

      1. Hi Torsten,

        mmh, Access über ODBC kann es nicht sein, weil IDC auch über ODBC abfragt, soweit ich weiß, das sollte also keinen Unterschied machen. Als einzige Ursache könnte ich mir deshalb vorstellen, daß Dein Server knapp unter seinem Ressourcenlimit liegt, und ihn der Overhead, wenn ASP gestartet wird (und damit dann auch VBScript, oder mit was auch immer Du in ASP programmierst) so langsam macht. Normal ist dieses Verhalten auf jeden Fall nicht. PHP könntest Du auch mit IIS verwenden, allerdings kann ich mir schlecht vorstellen, daß die Kombination aus IIS & PHP unter Windows sehr viel schneller ist, da ASP sehr viel direkter auf IIS aufsetzen kann, als PHP, das sich an die veröffentlichen Schnittstellen für CGI halten muß. Schneller wäre es wohl, wenn Du Apache, PHP und einen vernünftigen SQL-Server unter Linux nimmst. Access ist bei Mehrbenutzerzugriffen (so 5-10 User) nämlich wirklich recht schnell überfordert. (Der MSSQL-Server ist da schon besser, aber halt auch nicht billig, während es MySQL unter Linux umsonst gibt :-) )

        Grüße
        Stephan

        1. Hi Torsten,

          mmh, Access über ODBC kann es nicht sein, weil IDC auch über ODBC abfragt, soweit ich weiß, das sollte also keinen Unterschied machen. Als einzige Ursache könnte ich mir deshalb vorstellen, daß Dein Server knapp unter seinem Ressourcenlimit liegt, und ihn der Overhead, wenn ASP gestartet wird (und damit dann auch VBScript, oder mit was auch immer Du in ASP programmierst) so langsam macht. Normal ist dieses Verhalten auf jeden Fall nicht. )

          :
          :

          Grüße
          Stephan

          Da bei uns nun die Semesterferien angefangen (weniger Zugriffe durch Studenten) und nun auch die Abfrage wesentlich schneller geworden ist, vermute ich daß es tatsächlich an der Auslastung des Server lag.
          Mir war wohl nicht klar was für ein dicker Brummer ASP ist.
          Dennoch muß ich sagen,daß ich ein derart ungünstiges Verhältnis zwischen ASP und IDC/HTX immer noch sehr seltsam finde und ich wohl auf ASP verzichten werde wenn es sich vermeiden läßt.

          Danke an alle die mir geholfen haben.

          Torsten

  2. Hallo,

    vorab eine Anmerkung. MDAC 2.x ist der zu 99% schuldige Faktor für eine langsamere Abfragegeschwindigkeit.

    Seht Euch doch mal http://www.asp-solutions.de an.
    Das Web basiert auf mehreren Access-Datenbanken, die alle per ASP ausgelesen bzw. beschrieben werden.

    Da MDAC 2.x  nicht mehr so gut mit sehr vielen Objekten umgehen kann, war auch bei mir eine Umprogrammierung fällig.
    Der haüfigste Punkt wird eine Objekterstellung innerhalb einer Schleife sein.

    Beispiel:
    <%
    Do while NOT rs.EOF
        ...
        SET obArtikelRS = Server.CreateObject("ADODB.Recordset")
        ...
    Loop
    %>

    In diesem Fall wird für jeden Schleifendurchlauf ein neues Objekt erzeugt, daß die Lebensdauer = Zeit für Seitenabarbeitung hat. Während MDAC 1.5 dies erkannte und das Objekt nicht neu erstellte, erkennt MDAC 2.x dies nicht mehr.

    Wahrscheinlich habe ich auch das Skript noch nicht richtig optimiert, aber daß ich den Vorsprung von IDC/HTX aufhole glaube ich kaum.
    Meine Frage: Muß ich mich mit so etwas abfinden, könnte es an der Datenbank liegen (Access über ODBC) ,
    ist PHP3 eventuell schneller und wenn ja kann ich damit unter dem  IIS Access Datenbanken abfragen oder sollte wir uns einen SQL-Server zulegen, was natürlich die teuerste Lösung wäre.

    ob Ihr Euch einen SQL-Server zulegen solltet, hängt eigentlich nur davon ab, wieviele Benutzer gleichzeitig Daten abrufen werden sowie von der Anzahl Tabellen, Datensätze in der Datenbank. (max. 15 Benutzer, max. 25 Tabellen, max. 100.000 Datensätze) Diese Angaben sind reine Schätzwerte, bzw. basieren auf Erfahrungswerten.

    Mir ist nach der Einarbeitung in ASP schon klar, daß es besonders im handling der Daten immense Vorteile gegenüber IDC/HTX hat die ich gerne nutzen würde, aber wenn es so langsam ist würde ich vielleicht auch darauf  verzichten.

    Darauf verzichten solltest Du nicht. Als Beispiel dient z.B. http://www.asp-solutions.de
    Die Ausführungszeit ist hier extrem niedrig.

    Ich würde mich über Ratschläge sehr freuen.

    By Torsten

    Besuch doch mal http://www.asp-database.de

    Tschau, Stefan