Frage

Ich bin Daten aus Excel in SQL Server das Hochladen der folgenden Struktur mit:

Private Sub ado_upload()

    Dim objConnection As New ADODB.Connection
    Dim objCommand As New ADODB.Command
    Dim strSQL As String
    Dim strDSN As String
    Dim intCounter As Integer

    strDSN = "provider=SQLOLEDB;" _
    & "server=<server>;" _
    & "database=<database>;" _
    & "uid=<uid>;pwd=<pwd>;" _
    & "trusted_connection=false;"

    With objConnection
        .ConnectionString = strDSN
        .Open
    End With

    strSQL = "SET NOCOUNT ON; " _
    & "INSERT INTO dbo.[table1] ( [col1] ) VALUES ( ? );"

    With objCommand

        .ActiveConnection = objConnection
        .CommandText = strSQL
        .Prepared = True
        .Parameters.Append .CreateParameter("col1", adInteger, adParamInput)

        For intCounter = 0 To 9
            .Parameters("Col1").Value = intCounter
            .Execute
        Next intCounter

    End With

End Sub

Die Geschwindigkeit des Verfahrens hängt von der geografischen Entfernung zwischen dem Server und dem Computer, um die Prozedur ausgeführt wird. Auf dem Server selbst ist schnell (300.000 Einsätze in weniger als 10 Minuten), auf der anderen Seite des Landes es relativ langsam ist (300.000 Einsätze könnten Stunden dauern). Remote-Uploads funktionieren über ein VPN.

ich denke, die Netzwerklatenz muss den Prozess nach unten verlangsamen. Gibt es eine Möglichkeit der Netzwerklatenz zu umgehen, oder die VPN-zwicken die Uploads schneller zu machen?

Danke!

War es hilfreich?

Lösung

  

Die Geschwindigkeit des Verfahrens hängt von der geografischen Entfernung zwischen dem Server und dem Computer, um die Prozedur ausgeführt wird.

Es hängt wirklich davon ab, wie viele Hops Sie und die Maschine, die Sie zu am anderen Ende sich verbinden sind von den Hauptleitungen und die Wege dazwischen. Es ist nicht immer die gleiche Strecke, auch nicht. Verwenden Sie den Befehl tracert, um zu sehen, weil der Engpass-Pakete durch eine 10 Mb / s-Verbindung statt einer OC Linie gehen könnte.

  

Auf dem Server selbst ist schnell (300.000 Einsätze in weniger als 10 Minuten),

Es soll selbstverständlich sein, dass die lokalen etwas Durchführung an die Maschine mit der schnellstmöglichen Geschwindigkeit laufen wird, außerhalb der Belastung der Maschine zu dem gegebenen Zeitpunkt.

  

... Uploads arbeiten über einen VPN.

Während es sicher ist, es Compoundierung das Problem, weil der Aufwand für, dass die Sicherheitsmittel können Sie weniger pro Paket senden, als wenn die Daten sind unverschlüsselt.

Wie bereits erwähnt, haben Sie keine Kontrolle über die Routen, sobald Ihre Pakete genommen werden außerhalb Ihres Netzwerks. Alles, was ich vorschlagen kann, ist die Dateien auf den Server, zu laden und dann von dort aus.

  

Downloads sind so viel schneller als Uploads, auch wenn es nach wie vor nur einen ADO-Befehl ist. Ist das, weil die Daten von SQL Server als binäre Daten heruntergeladen werden? Gibt es eine Möglichkeit, dass die gleiche Leistung auf dem Upload zu erreichen, ohne zuerst die Datei auf den Server hochgeladen werden?

Abhängig von der Verbindung und die Vertragsbedingungen. Wohn Internet ist immer eine asymmetrische Verbindung - Sie mehr Download-Bandbreite als Upload haben werden. Der Grund dafür ist, dass Surfen / etc ist Download-centric - Sie verbrauchen sehr wenig Bandbreite für Uploads, wie Seitenanforderungen und Absenden Formen. Bis Sie möchten Dateien hochladen ...

Der einzige Weg, eine bessere Upload-Geschwindigkeiten zu erhalten, ist die bessere Verbindung und / oder Vertragsbedingungen zu erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top