Markus : ASP auf mysql über myodbc sehr langsam

hallo!

sitze vor einem großem problem! ich greife über eine asp- seite auf eine bestehende mysql-db zu, welche auf einem anderen server ist. der zugriff ist sehr langsam. in dem ersten 10 sekunden beträgt die übertragungsrate lediglich 40kb. werden dann die bilder geladen (auch von dem server, wo die db liegt) geht dies dann mit erwarteter geschwindigkeit. also, der zugriff auf die datenbank, welche auf einen anderen server liegt ist sehr langsam.

hier ein code-teil:

<%
Sub webcamOpenDB()
  set connWebcam = createobject("ADODB.Connection")
  connWebcam.open = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=217.29.159.139; DATABASE=koeberl; UID=xxx;PWD=xxx; OPTION=35;"
End Sub

Sub webcamCloseDB()
    rsWebcambilder.Close
    Set rsWebcam = Nothing

End Sub
    %>
    <%Sub webcamform()%>
    <div class="galleryContainer_WC">
        <%

Call webcamOpenDB()
set rsWebcambilder = connWebcam.Execute("SELECT * FROM bilder ORDER by baustelleid DESC")
Do while not rsWebcambilder.EOF

baustellennummer=( rsWebcambilder.Fields("baustelleid").Value )

Dim p
If p <> baustellennummer Then
 'letztes Bild ausgeben
 set rsWebcambilder3 = connWebcam.Execute("SELECT * FROM bilder Where baustelleid = '" & baustellennummer & "' ORDER by id DESC")
 firstthumb=( rsWebcambilder3.Fields("id").Value )

set rsWebcambaustelle = connWebcam.Execute("SELECT * FROM baustelle Where ID ='" & baustellennummer & "'")

'fertige baustellen ausgeben

%>
        <div class="imgContainer_WC">
            <a href="cms.asp?topMenu=<%=topMenu%>&menu=<%=menu%>&detailview=1&ID=<%=baustellennummer%>&picture=<%=firstthumb%>&pic_counter=0&ready=0">
                <img src="http://www.koeberl.at/webcam/bilder/<%=baustellennummer%>/thu<%=firstthumb%>.jpg"
                    width="96px" height="66px"</a>
        </div>
        <%

p = baustellennummer
End If

hat jemand eine ahnung. ich würde als nächsten schritt die datenbank auf den server laden, wo die asp-seite liegt, um die verbindung zu dem anderen server zu vermeinden.

hier der link auf die seite: http://koeberl.einfachtoll.com/cms.asp?topMenu=110&menu=130&ready=0

mfg,
max

  1. Hallo,

    ja, für eine direkte, kurze Verbindung zwischen Webapplikation und Datenbank zu sorgen, macht durchaus Sinn. Allein aus der IP ist ja nicht ersichtlich was für eine Netzwerktopologie du hast.

    hat jemand eine ahnung.

    Ist das eine Aussage oder eine Frage? Und wovon soll jemand Ahnung haben? Wie man eine mySQL DB überträgt?

    'letztes Bild ausgeben
    set rsWebcambilder3 = connWebcam.Execute("SELECT * FROM bilder Where baustelleid = '" & baustellennummer & "' ORDER by id DESC")

    Du möchtest doch nur das 1. also das letzte und nicht alle? Wie wäre es dann mit einem TOP 1 oder für mySQL ein LIMIT 1. Das reduziert schon mal die Menge der zu übertragenden Daten deutlich.

    Ausserdem könntest mithilfe von Indizes auf 'baustelleid' evt. noch etwas mehr dazu beitragen, dass die Erzeugung des Ergebnisses schon auf
    Datenbankseite optimal verläuft.

    Ciao, Frank