sql >> Database >  >> RDS >> Sqlserver

SQL Server - Grote tabellen samenvoegen zonder de gegevens te vergrendelen

Wijzig uw frontend om NOLOCK of READ UNCOMMITTED te gebruiken bij het uitvoeren van de selecteert .

U kunt NOLOCK MERGE,INSERT of UPDATE niet gebruiken omdat de records vergrendeld moeten zijn om de update uit te voeren. U kunt de SELECTIE echter NOLOCKEN.

Houd er rekening mee dat u dit met de nodige voorzichtigheid moet gebruiken. Als vuil lezen oké is, ga je gang. Als de uitlezingen echter de bijgewerkte gegevens vereisen, moet u een ander pad inslaan en uitzoeken waarom het samenvoegen van 3M-records een probleem veroorzaakt.

Ik durf te wedden dat de meeste tijd wordt besteed aan het lezen van gegevens van de schijf tijdens het samenvoegen-commando en/of het omzeilen van situaties met weinig geheugen. Het is misschien beter om gewoon meer ram in uw databaseserver te stoppen.

Een ideale hoeveelheid zou zijn om voldoende ram te hebben om de hele database naar behoefte in het geheugen te trekken. Als je bijvoorbeeld een database van 4 GB hebt, zorg dan dat je 8 GB RAM hebt.. in een x64-server natuurlijk.



  1. PHP/MySQL kopieert gegevens in stukjes van de ene tabel naar de andere via een knop meer laden

  2. Hoe groepen tupels in sql . te vergelijken

  3. De SQL Server Query Store

  4. twee vreemde sleutels, hoe in kaart te brengen met laravel welsprekend