문제

다음 구조를 사용하여 Excel에서 SQL Server로 데이터를 업로드하고 있습니다.

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을 조정하여 업로드를 더 빨리 만들 수있는 방법이 있습니까?

감사!

도움이 되었습니까?

해결책

절차 속도는 서버와 프로 시저를 실행하는 컴퓨터 사이의 지리적 거리에 따라 다릅니다.

그것은 실제로 당신과 다른쪽에 연결하는 기계가 주요 트렁크에서 나온 홉 수와 그 사이의 경로에 달려 있습니다. 항상 같은 경로는 아닙니다. 사용 tracert 병목 현상은 OC 라인이 아닌 10MB/s 연결을 통과하는 패킷이 될 수 있으므로 명령해야합니다.

서버 자체에서는 빠릅니다 (10 분 안에 300,000 인서트),

기계에 로컬로 무언가를 수행하는 것은 주어진 시간에 기계의 부하 외부에서 가능한 가장 빠른 속도로 실행됩니다.

... 업로드는 VPN에서 작동합니다.

안전하지만 해당 보안의 오버 헤드는 데이터가 암호화되지 않은 경우보다 패킷 당 덜 보낼 수 있기 때문에 문제가 발생합니다.

앞에서 언급했듯이 패킷이 네트워크 외부에 있으면 촬영 한 경로를 제어하지 않습니다. 내가 제안 할 수있는 것은 파일을 서버에 업로드 한 다음 거기에서 실행하는 것입니다.

다운로드는 여전히 ADO 명령 일지라도 업로드보다 훨씬 빠릅니다. 데이터가 SQL Server에서 이진 데이터로 다운로드 되었기 때문입니까? 파일을 서버에 먼저 업로드하지 않고 업로드에서 동일한 성능을 달성 할 수있는 방법이 있습니까?

연결 및 계약 조건에 따라 다릅니다. 주거 인터넷은 항상 비대칭 연결입니다. 업로드보다 더 많은 다운로드 대역폭이 있습니다. 서핑/등을 다운로드 한 이유는 중심적이기 때문입니다. 페이지 요청 및 양식 제출과 같은 업로드에 대역폭을 거의 사용하지 않습니다. 파일을 업로드하고 싶을 때까지 ...

더 나은 업로드 속도를 얻는 유일한 방법은 더 나은 연결 및/또는 계약 조건을 얻는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top