Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 8936|Vastaus: 0

SQL lukitsee NOLOCK, HOLDLOCK, UPDLOCK, TABLOCK, TABLOCKX

[Kopioi linkki]
Julkaistu 20.7.2016 14.02.51 | | |

NOLOCK
Kun tämä vaihtoehto on valittu, SQL Server lukee tai muokkaa dataa ilman lukittuja. Tässä tapauksessa käyttäjä voi lukea tietoja sitoutumattomasta transaktiosta tai Roll Backista, jota kutsutaan "likaiseksi dataksi".

PYSÄHDYS
Kun tämä vaihtoehto valitaan, SQL Server ylläpitää tätä jaettua lukkoa koko tapahtuman loppuun asti vapauttamatta sitä matkan varrella.

UPDLOCK
Kun tämä vaihtoehto on valittu, SQL Server käyttää muokauslukkoa jaetun lukon sijaan dataa lukiessaan ja ylläpitää tätä lukkoa koko transaktion tai komennon loppuun asti. Tämä vaihtoehto varmistaa, että useat prosessit voivat lukea dataa samanaikaisesti, mutta vain kyseinen prosessi voi muokata dataa.

TABLOCK
Kun tämä vaihtoehto valitaan, SQL Server asettaa jaetun lukon koko taululle, kunnes komento päättyy. Tämä vaihtoehto varmistaa, että muut prosessit voivat vain lukea dataa eivätkä muokata sitä.

PAGLOCK
Tämä vaihtoehto on oletusvaihtoehto, ja kun se valitaan, SQL Server käyttää jaettua sivulukitusta.

TABLOCKX (Eksklusiivinen pöytälukko)
Kun tämä vaihtoehto valitaan, SQL Server asettaa lukituksen koko tauluun, kunnes komento tai transaktio päättyy. Tämä estää muita prosesseja lukemasta tai muokkaamasta taulukon tietoja.

HOLDLOCK pitää jaettua lukkoa hallussaan, kunnes koko transaktio on valmis, ja se tulisi vapauttaa heti, kun lukittua objektia ei tarvita, mikä vastaa SERIALIZET-transaktioiden eristystasoa

NOLOCK-lauseke suoritetaan ilman jaettua lukkoa, jolloin sallitaan likaiset lukemiset, mikä vastaa READ UNCOMMITTED -transaktioiden eristystasoa

PAGLOCK käyttää useita sivulukkoja, joissa käytetään yhtä taulukkolukkoa

READPASTin avulla sql-palvelin voi ohittaa lukitut rivit ja suorittaa transaktioita, ja READ UNCOMMITTED -eristystasoilla ohittaa vain RID-lukot, ei sivu-, vyöhyke- ja taulukolukkoja

ROWLOCK valvoo rivilukkojen käyttöä

TABLOCKX vaatii yksinoikeudella taulukkotason lukituksen käyttöä, mikä estää muita transaktioita käyttämästä taulukkoa transaktion aikana

UPLOCK pakottaa päivityksiä käyttämään taulukkoa, jossa ei ole jaettua lukkoa

Huomautus: Ero taulun lukitsemisessa tietokantaan
VALITSE * FROM -taululla (HOLDLOCK) Muut transaktiot voivat lukea taulua, mutta eivät voi päivittää tai poistaa
VALITSE * FROM -taululla (TABLOCKX) Muut transaktiot eivät voi lukea, päivittää tai poistaa taulukoita




Edellinen:Lukitukset, likaiset lukemiset, toistumattomat lukemiset ja väärät lukemat SQL:ssä
Seuraava:SQL Server tarkastelee pattitilannetta ja vapauttaa sen
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com