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

Omezit prostoje tabulky na minimum přejmenováním staré tabulky a následným vyplněním nové verze?

Chcete-li se vyhnout přímé manipulaci s tabulkami, použijte indirection:

  • Mějte 3 tabulky:Klient1, Klient2, Klient3 se všemi indexy, omezeními a spouštěči atd
  • Použít synonyma skrýt skutečnou tabulku, např. Client, ClientOld, ClientToLoad
  • Chcete-li vygenerovat novou tabulku, zkrátíte nebo zapíšete do "ClientToLoad"
  • Pak VYHODÍTE a VYTVOŘÍTE synonyma v transakci tak, aby
    • Klient -> co bylo ClientToLoad
    • ClientOld -> co byl klient
    • ClientToLoad -> co bylo ClientOld

Můžete použít SELECT base_object_name FROM sys.synonyms WHERE name = 'Client' zjistit, jaký je aktuální směr

Toto funguje na všech edicích SQL Server:druhým způsobem je "přepínání oddílů", které vyžaduje podnikovou edici



  1. MySQL v Dockeru vrací Serverem požadovanou autentizační metodu neznámou klientovi

  2. Jak říci vytvořit proceduru, pokud neexistuje v MySQL

  3. Připojte MySQL k aplikaci Spring

  4. Úvahy o integritě dat a výkonu v semisynchronní replikaci MySQL