Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 8936|Válasz: 0

SQL zárolja NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Linket másol]
Közzétéve 2016. 07. 20. 14:02:51 | | |

NOLOCK
Ha ezt az opciót választják, az SQL Server zárolás nélkül olvas vagy módosítja az adatokat. Ebben az esetben a felhasználó olvashat adatokat egy elkötelezett tranzakcióból vagy visszafordításból, amit "piszkos adatoknak" neveznek.

FOGALOM
Ha ezt az opciót választják, az SQL Server fenntartja ezt a közös zárolást a teljes tranzakció végéig anélkül, hogy útközben feloldaná.

UPDLOCK
Ha ezt az opciót kiválasztották, az SQL Server módosító zárat használ az adatok olvasása során a megosztott zár helyett, és ezt a zárolást az egész tranzakció vagy parancs végéig fenntartja. Ez az opció biztosítja, hogy több folyamat egyszerre olvasson adatokat, de csak ez a folyamat módosíthatja az adatokat.

TABLOCK
Ha ezt az opciót kiválasztják, az SQL Server megosztott zárolást tesz az egész táblára, amíg a parancs véget nem ér. Ez az opció biztosítja, hogy más folyamatok csak olvashassák az adatokat, és nem tudják módosítani az adatokat.

PAGLOCK
Ez az alapértelmezett opció, és ha kiválasztják, az SQL Server megosztott oldalzárolást használ.

TABLOCKX (Exclusive Table Lock)
Ha ezt az opciót választják, az SQL Server zárolja az egész táblát, amíg a parancs vagy tranzakció véget nem ér. Ez megakadályozza, hogy más folyamatok felolvassák vagy módosítsák a táblázatban lévő adatokat.

A HOLDLOCK a megosztott zárolást tartja a teljes tranzakció befejezéséig, és akkor szabadon kell engedni, amint a zárolt objektumra nincs szükség, ami megegyezik a SERIALIZÁLHATÓ tranzakciós izolációs szinttel

A NOLOCK utasítást megosztott zár nélkül hajtják végre, így piszkos olvasásokat engednek le, ami megegyezik a READ UNCOMMITTED tranzakciós izolációs szinttel

A PAGLOCK több oldalzárat használ, ahol egy táblazárat használnak

A READPAST lehetővé teszi, hogy a sql szerver kihagyja a zárt sorokat és végrehajtson tranzakciókat, míg a READ UNCOMMITTED tranzakciós izolációs szinteknél csak a RID zárolásokat hagyja ki, nem az oldal-, zóna- és táblazárakat

A ROWLOCK érvényesíti a sorzárak használatát

A TABLOCKX exkluzív táblázatszintű zárolást kényszerít ki, amely megakadályozza, hogy bármely más tranzakció használja a táblát a tranzakció során

Az UPLOCK kényszeríti a frissítések használatát, amikor egy táblázatot olvasnak megosztott zár nélkül

Megjegyzés: A különbség egy táblázat adatbázisban történő zárolása között
SELECT * FROM table WITH (HOLDLOCK) Más tranzakciók olvashatják a táblát, de nem tudják frissíteni vagy törölni
SELECT * FROM táblázat WITH (TABLOCKX) Más tranzakciók nem olvashatók, frissíthetők és törölhetnek táblákat




Előző:Zárolások, piszkos olvasások, ismételhetetlen olvasások és hamis olvasások SQL-ben
Következő:Az SQL Server megvizsgálja a holtpontot, és feloldja a holtpontot
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com