Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 11079|Atbildi: 1

[Avots] MSSQL AR (NOLOCK) netīru lasīšanu

[Kopēt saiti]
Publicēts: 2020-4-3 10:06:04 | | |
Mīnusi:

1. Tas radīs netīru lasīšanu

2. Attiecas tikai uz atlasītiem vaicājumu paziņojumiem

Plusi:

1. Daži faili saka, ka SQL vaicājumu efektivitāti ar WITH (NOLOCK) var palielināt par 33%.

2. Var izmantot iekšējiem savienojuma apgalvojumiem

Netīra lasīšana: lietotājs veic izmaiņas resursā, un cits lietotājs nolasa modificēto ierakstu, un tad pirmais lietotājs atsakās no modifikācijas, un dati atgriežas iepriekšējā modijā, šie divi dažādie rezultāti ir netīra lasīšana.

Sīkāka informācija:

Lai uzlabotu SQL vaicājumu veiktspēju, vispirms ir jāizveido indekss. Faktiski, papildus indeksu izveidei, ievietojot SQL komandas, sintaksei pievienojot sadaļu WITH (NOLOCK), var uzlabot datu kopu LOCKed parādību vidē ar lielu skaitu tiešsaistes vaicājumu, tādējādi uzlabojot vaicājuma veiktspēju.

Tomēr jāņem vērā, ka SQL SELECT ar (NOLOCK) var izraisīt netīru lasīšanu.

Piemēram:

Papildus vienkāršajai funkcijai SELECT varat izmantot arī SELECT sintaksi ar JOIN. Bet DZĒST, IEVIETOT, ATJAUNINĀT un citas komandas, kurām nepieciešami darījumi, nav labas...


Daži faili saka, ka SQL vaicājumu efektivitāti var palielināt par 33% ar WITH (NOLOCK).
Pievienojot WITH (NOLOCK), SQL Server norāda, ka mūsu komandai SELECT nav jāņem vērā pašreizējās tabulas darījumu bloķēšanas stāvoklis, tāpēc veiktspēja tiks ievērojami uzlabota, un datu bāzes sistēmas bloķēšanas parādība ievērojami samazināsies (ieskaitot strupceļa bloķēšanu).

Jāatzīmē, ka, tā kā WITH (NOLOCK) neņem vērā pašreizējās tabulas darījumu bloķēšanu, tāpēc, ja ir daži dati, kas atrodas vairākās fāzēs (piemēram, darījumi vairākās tabulās - >piemēram, izņemšanas sistēmas), WITH (NOLOCK) ignorē datus, kas pašlaik apstrādā darījuma procesu...

Atklāti sakot, tas ir, izmantojot NoLock, tas ļauj lasīt datus, kas ir modificēti, bet darījums vēl nav pabeigts. Tāpēc, ja jums ir jāapsver darījumu datu integritāte reāllaikā, jums rūpīgi jāpārdomā WITH (NOLOCK) izmantošana.

Ja jums nav jāapsver darījumi, WITH (NOLOCK) var būt noderīga atsauce.

1. piezīme: AR ( < table_hint > )
Norāda tabulas skenēšanu, vienu vai vairākus indeksus, ko izmanto vaicājumu optimizētājs,
Vai vaicājumu optimizētājs, lai izmantotu šo datu tabulu un izmantotu bloķēšanas režīmu šim apgalvojumam.

2. piezīme: AR (NOLOCK) ir ekvivalents READ UNCOMMITTED





Iepriekšējo:Datu bāzes galvenā verga latentums noved pie neprecīzas vaicājumu izšķirtspējas
Nākamo:Novērsta problēma, ka fiddler nevarēja pārmeklēt vietējā vietējā resursdatora, 127.0.0.1 tīkla pieprasījumus
Publicēts 2020-4-5 14:21:36 |
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com