0

次の構造を使用して、ExcelからSQLServerにデータをアップロードしています。

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

手順の速度は、サーバーと手順を実行しているコンピューターの間の地理的な距離によって異なります。サーバー自体では高速(10分以内に300,000回の挿入)ですが、国の反対側では比較的低速です(300,000回の挿入には数時間かかる場合があります)。リモートアップロードはVPNを介して動作します。

ネットワークの待ち時間がプロセスの速度を低下させているに違いないと思います。ネットワーク遅延を回避する方法、またはVPNを微調整してアップロードを高速化する方法はありますか?

ありがとう!

4

1 に答える 1

1

手順の速度は、サーバーと手順を実行しているコンピューターの間の地理的な距離によって異なります。

それは実際には、あなたとあなたがもう一方の端で接続しているマシンが主要なトランクからのホップ数と、それらの間のルートに依存します。必ずしも同じルートではありません。tracertボトルネックは、OC回線ではなく10 Mb / s接続を通過するパケットである可能性があるため、コマンドを使用して確認してください。

サーバー自体では高速です(10分以内に300,000回挿入)、

言うまでもなく、マシンに対してローカルで何かを実行すると、特定の時間にマシンにかかる負荷の範囲外で、可能な限り最速の速度で実行されます。

...アップロードはVPNを介して動作します。

安全ではありますが、そのセキュリティのオーバーヘッドにより、データが暗号化されていない場合よりもパケットあたりの送信数が少なくなるため、問題が複雑になります。

前に述べたように、パケットがネットワークの外に出た後は、ルートを制御することはできません。私が提案できるのは、ファイルをサーバーにアップロードして、そこから実行することだけです。

ダウンロードはアップロードよりもはるかに高速ですが、それでも単なるADOコマンドです。これは、データがSQL Serverからバイナリデータとしてダウンロードされているためですか?最初にファイルをサーバーにアップロードせずに、アップロードで同じパフォーマンスを達成する方法はありますか?

接続と契約条件によって異なります。住宅用インターネットは常に非対称接続です。アップロードよりもダウンロード帯域幅が広くなります。その理由は、サーフィンなどがダウンロード中心であるためです。ページのリクエストやフォームの送信など、アップロードに使用する帯域幅はごくわずかです。ファイルをアップロードするまで...

アップロード速度を上げる唯一の方法は、接続や契約条件を改善することです。

于 2009-12-18T05:28:34.293 に答える