sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server - Slå ihop stora tabeller utan att låsa data

Ändra ditt användargränssnitt till att använda NOLOCK eller READ UNCOMMITTED när du gör valen .

Du kan inte NOLOCK MERGE, INSERT eller UPDATE eftersom posterna måste vara låsta för att uppdateringen ska kunna utföras. Du kan dock INTE LÅSA SELECTS.

Observera att du bör använda detta med försiktighet. Om smutsiga läsningar är okej, fortsätt. Men om läsningarna kräver uppdaterade data måste du gå en annan väg och ta reda på exakt varför sammanslagning av 3M-poster orsakar problem.

Jag skulle vara villig att slå vad om att det mesta av tiden går åt till att läsa data från disken under sammanfogningskommandot och/eller att arbeta kring situationer med lågt minne. Du kanske är bättre av att bara stoppa in mer ram i din databasserver.

En idealisk mängd skulle vara att ha tillräckligt med ram för att dra hela databasen till minnet efter behov. Till exempel, om du har en 4 GB databas, se till att du har 8 GB RAM... i en x64-server såklart.



  1. PHP PDO Användarnamn Tillgänglighetskontroll

  2. Konvertera sträng till Datetime-objekt i SQL

  3. AlwaysOn-tillgänglighetsgrupper:Quorum

  4. Kan inte få kodningen rätt i MySQL