[英]How to insert Records to SQL/Server from Access to SQL/Server using “Insert Into” with slow connection
這是我嘗試過的。 我沒有或應該嘗試什么?
我的情況:
我已經嘗試了以下所有方法:
DAO-(currentdb.execute)運行Access SQL,通過VPN到遠程SQL / Server的OLEDB連接-可以使用“插入”速度非常慢。
ADO使用Access SQL-甚至更慢。
僅用於OLEDB,發出到遠程SQL / Server的SQL命令看不到本地ACCDB文件,因此您必須遍歷記錄集,為每個記錄構建一條SQL語句。 非常慢。 很多額外的編碼。
OLEDB訪問鏈接表到SQL / Server。 快速讀取數據,插入記錄非常慢。
兩端都是SQL / Server。 本地SQL / Server鏈接表到ACCDB和遠程服務器。 可行,但不能提高速度。 1000條相當小的記錄需要5+分鍾才能插入。
批量插入。 無法做到這一點,源數據不是文本文件,而是ACCDB。 這不是一次轉換,而是每天更新新記錄或更改記錄。
SSIS-看起來很快,因為我能夠快速遷移整個數據庫,但對於日常使用普通的插入和刪除操作來說似乎不合適或不容易。
尚未嘗試:SQL / Server訂閱服務器-發布者的鏡像/復制,可將遠程表“虛擬”地保留在本地。
因此,令人驚訝的是,我發現DAO到遠程ACCDB(無SQL / Server)的速度比通過VPN的SQL / Server快20倍。 但是,我寧願使用SQL / Server。
我沒有或應該嘗試什么?
仔細檢查TCP / IP連接已在SQL Server&上啟用,並且實際上正在由客戶端(而不是命名管道)使用-如果您使用OLEDB stick ;Network Library=DBMSSOCN
在連接字符串末尾使用;Network Library=DBMSSOCN
強制執行此操作。
您是否嘗試過從遠程SQL服務器“拉”? 即您的應用程序調用了使用OPENROWSET / OPENQUERY從本地SQL Server提取數據的存儲過程? -對於非對稱的上/下速度連接很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.