sql >> Database teknologi >  >> RDS >> Sqlserver

Linket server Indsæt-Vælg ydeevne

Den hurtigste måde er at trække data i stedet for at skubbe dem. Når tabellerne skubbes, kræver hver række en forbindelse, en indsættelse og en afbrydelse.

Hvis du ikke kan trække dataene, fordi du har et envejs-tillidsforhold mellem serverne, er opgaven at konstruere hele tabellen som en kæmpe T-SQL-sætning og køre det hele på én gang.

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


  1. MySQL standarddatabase

  2. Postgres SELECT* FROM table WHERE column-varchar==string-example?

  3. Oprettelse og implementering af flere versioner af databasen gennem skemasnapshots

  4. MySQL Group_Concat() vs T-SQL String_Agg()