sql >> Database >  >> RDS >> Sqlserver

Hoe een insert naar een gekoppelde SQL-server correct te activeren?

Voer invoegingen uit van een trigger in een tabel op een gekoppelde server - slechte beslissing. Dit heeft grote invloed op de invoegprestaties in de brontabel ([dbo].[Table_1]) en er is ook een gedistribueerde transactie en het configureren van servers voor ondersteuning van gedistribueerde transacties - nachtmerrie.

Een mogelijke oplossing is:

  1. Op de bronserver kunt u een synchronisatiewachtrijtabel maken. Bijvoorbeeld:

    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 op dbo.SourceTable kan snel in dbo.SyncQueue record worden ingevoegd Sleutel die u moet synchroniseren

  3. Sommige periodiek uitgevoerde opgeslagen procedures kunnen dan records uit de wachtrij intable op de gekoppelde server invoegen.



  1. Toegang tot MySQL van MAMP vanuit Terminal

  2. Selecteer alleen gebruikers van de ene tafel, zo niet in een andere

  3. Moet ik het mysql-resultaat vrijgeven nadat ik het heb opgeslagen?

  4. Hoe gegevens uit tabellen op postgres te INTERSECTEREN