sql >> Databasteknik >  >> RDS >> Sqlserver

Infoga länkad server - Välj prestanda

Det snabbaste sättet är att hämta data istället för att trycka på den. När tabellerna trycks, kräver varje rad en anslutning, en infogning och en frånkoppling.

Om du inte kan hämta data, eftersom du har en envägsförtroenderelation mellan servrarna, är arbetet runt att konstruera hela tabellen som en gigantisk T-SQL-sats och köra allt på en gång.

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. Hur återställer jag en dumpfil från mysqldump med kubernetes?

  2. Hur grupperar man efterföljande rader (baserat på ett kriterium) och räknar dem sedan [MySQL]?

  3. Hitta skillnaden mellan två värden i samma kolumn i MySQL

  4. Visa null för kolumn om ingen rad hittas