遅延や私のVPNは、SQL Serverのアップロードに私のExcelを窒息されていますか?
-
20-09-2019 - |
質問
私は、次の構造を使用してSQL ServerにExcelからデータをアップロードしています:
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
手順の速度は、サーバーと手順を実行しているコンピュータとの間の地理的距離に依存します。サーバー自体にそれは(30万インサートは時間かかることがあります)比較的遅い国の反対側に速い(10分の下で300,000挿入)、です。リモートアップロードはVPN上で動作します。
私は、ネットワークの待ち時間がプロセスを減速しなければならないと思います。ネットワークの遅延を回避する、またはより高速なアップロードをするためにVPNを微調整する方法はありますか?
ありがとうございます。
解決
手順の速度は、サーバーと手順を実行しているコンピュータとの間の地理的距離に依存する。
これは本当にあなたとあなたはもう一方の端にに接続しているマシンは、主要なトランクから、どのように多くのホップに依存し、ルート間。それはどちらか、常に同じルートではありません。ボトルネックは、10 Mb /秒の接続ではなく、OCラインを通過するパケット可能性があるため、見にtracert
コマンドを使用します。
サーバ自体には
、(10分下300,000インサート)速いです
これは、マシンにローカルな何かを行うことは与えられた時間にマシンの負荷の外に、最速のスピードで動作することは言うまでもないます。
それが安全である一方で、セキュリティのオーバーヘッドが、データが暗号化されていない場合よりもパケットあたり以下を送ることができることを意味するので、...アップロードはVPN上で動作します。
、それが問題を悪化されます。
私は前に述べたように、あなたはあなたのパケット一度撮影したルートを超える任意のコントロールは、ネットワークの外にされません。私はお勧めできるのは、サーバーにファイルをアップロードして、そこから実行することです。
のダウンロードは、それはまだちょうどADOコマンドにもかかわらず、そのアップロードよりもはるかに高速です。データはバイナリデータとしてSQL Serverからのダウンロードされているので、ということですか?最初のサーバーにファイルをアップロードせずに、アップロードに同じ性能を達成する方法はありますか?
接続&契約条件に依存します。住居インターネットは常に非対称接続である - あなたがアップロードよりダウンロード帯域幅を持っています。そのサーフィンの/ etcいる理由は、ダウンロード中心です - あなたは、ページリクエストと提出フォームのように、アップロードのための非常に少ない帯域幅を使用します。あなたは、ファイルをアップロードするまでは...
より良いアップロード速度を取得する唯一の方法は、より良い接続および/または契約条件を取得することです。