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

SQL Server – slučování velkých tabulek bez zamykání dat

Při provádění výběrů změňte frontend tak, aby používal NOLOCK nebo READ UNCOMMITTED .

Nemůžete NOLOCK MERGE, INSERT nebo UPDATE, protože záznamy musí být uzamčeny, aby bylo možné provést aktualizaci. Můžete však SELECTS ZAMKNOUT.

Pamatujte, že byste to měli používat opatrně. Pokud jsou špinavé čtení v pořádku, pokračujte. Pokud však čtení vyžadují aktualizovaná data, musíte jít jinou cestou a přesně zjistit, proč sloučení záznamů 3M způsobuje problém.

Byl bych ochoten se vsadit, že většinu času strávím čtením dat z disku během příkazu merge a/nebo řešením situací s nedostatkem paměti. Možná by bylo lepší nacpat do databázového serveru více paměti RAM.

Ideální množství by bylo mít dostatek paměti RAM pro stažení celé databáze do paměti podle potřeby. Pokud máte například 4GB databázi, ujistěte se, že máte 8GB RAM... samozřejmě na x64 serveru.



  1. Automatické zvýšení klíče SQLite PRIMARY nefunguje

  2. Co je kvalitní vývojové prostředí pro psaní Oracle SQL?

  3. Použití Spotlight Cloud k vyřešení blokování serveru SQL

  4. Získejte poslední ID vložky po připravené vložce s PDO