sql >> Databáze >  >> RDS >> Sqlserver

Jak správně spustit vložení na propojený server SQL?

Provádět vkládání z triggeru do tabulky na propojeném serveru - špatné rozhodnutí. To bude mít velký vliv na výkon vkládání do zdrojové tabulky ([dbo].[Table_1]) a také existuje distribuovaná transakce a konfigurace serverů pro podporu distribuovaných transakcí - noční můra.

Jedno z možných řešení je:

  1. Na zdrojovém serveru můžete vytvořit tabulku synchronizační fronty. Například:

    CREATE TABLE dbo.SyncQueue
    (
        QueueId INT IDENTITY(1,1),        
        KeyForSync INT, -- Primary key value of record in dbo.SourceTable
        SyncStatus INT  -- statuses can be: 0 - New, 1 - Synchronized, 2 - Error
    )
    
    suppose you source table is
    
    CREATE TABLE dbo.SourceTable
    (
            Key INT, -- primary key of the table
            Data varchar(xxx)
    )
    
  2. Triger na dbo.SourceTable může rychle vložit klíč záznamu dbo.SyncQueue, který potřebujete synchronizovat

  3. Některé pravidelně prováděné uložené procedury pak mohou vkládat záznamy z fronty na propojeném serveru.



  1. Pokud neexistuje, selže na SQL CE

  2. Analýza dat ODBC v IBM SPSS

  3. Many-to-Many Vztah mezi dvěma tabulkami ve dvou různých databázích

  4. jak odstranit dokončené objednávky ve woocommerce pomocí mého dotazu sql