Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Warum blockiert SQL Server 2008 SELECTs bei langen Transaktions-INSERTs?

Dieses Sperrverhalten ist eine Funktion von SQL Server. Ab Version 2005 können Sie Versionierung auf Zeilenebene (was bei Oracle standardmäßig verwendet wird), um das gleiche Ergebnis zu erzielen und Ihre Auswahl nicht zu blockieren. Dies belastet tempdb zusätzlich, da tempdb die Versionierung auf Zeilenebene beibehält, stellen Sie also sicher, dass Sie dies berücksichtigen. Damit sich SQL so verhält, wie Sie es möchten, führen Sie Folgendes aus:

ALTER DATABASE MyDatabase
SET ALLOW_SNAPSHOT_ISOLATION ON

ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON