Le moyen le plus rapide consiste à extraire les données plutôt qu'à les pousser. Lorsque les tables sont poussées, chaque ligne nécessite une connexion, une insertion et une déconnexion.
Si vous ne pouvez pas extraire les données, car vous avez une relation de confiance à sens unique entre les serveurs, la solution consiste à construire la table entière sous la forme d'une instruction T-SQL géante et à l'exécuter en une seule fois.
DECLARE @xml XML
SET @xml = (
SELECT 'insert Remote_Table values (' + '''' + isnull(first_col, 'NULL') + ''',' +
-- repeat for each col
'''' + isnull(last_col, 'NULL') + '''' + ');'
FROM Local_Table
FOR XML path('')
) --This concatenates all the rows into a single xml object, the empty path keeps it from having <colname> </colname> wrapped arround each value
DECLARE @sql AS VARCHAR(max)
SET @sql = 'set nocount on;' + cast(@xml AS VARCHAR(max)) + 'set nocount off;' --Converts XML back to a long string
EXEC ('use RemoteDb;' + @sql) AT RemoteServer