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

Skats: 28055|Atbildi: 3

[Avots] SQL Server vairāku versiju vienlaicīguma kontrole

[Kopēt saiti]
Publicēts 28.01.2021 17:55:52 | | |
Datu bāzes konsekvence ir arī viens no svarīgākajiem rādītājiem, lai novērtētu DBVS veiktspēju. Šobrīd lielākā daļa komerciālo datu bāzu (DB2, SQL Server) vienlaicīguma kontrolei izmanto divfāžu bloķēšanas (2PL) protokolu, kas nodrošina vienlaicīgas darījumu izpildes serializāciju. Tomēr 2PL ir jābloķē visi dati, pirms tie var lasīt vai rakstīt. Bloķēšanas saderības matricā S slēdzenes (koplietošanas slēdzenes) un X slēdzenes (ekskluzīvas slēdzenes) nav saderīgas, tāpēc, ja 1. darījums veic datu A nolasīšanas operāciju (plus S slēdzene) un 2. darījums vēlas rakstīt datos (pievienojiet X slēdzeni), tad 2. darījumam ir jāgaida, līdz 1. darījums atbrīvos S bloķēšanu datiem A, pirms turpināt. Vairāku versiju vienlaicīguma kontrole (MVCC) labi atrisina šo problēmu. Vairāku versiju sistēmā katrs rakstīšanas dati ģenerē jaunu versiju, un lasīšanas operācija var nolasīt atbilstošo versiju pēc vajadzības, tāpēc lasīšanas un rakstīšanas operācijas nebloķē viena otru. MVCC palielina vienlaicīgumu, bet tas arī ievieš krātuves pieskaitāmās izmaksas vairāku versiju uzturēšanai.

Microsoft SQL Server datu bāzes programma ievieš jaunu esošā transakciju izolācijas līmeņa ieviešanu - saistīto lasīšanu, kas nodrošina priekšraksta līmeņa momentuzņēmumus, izmantojot rindu versiju izveidi. SQL Server datu bāzes programma ievieš arī jaunu transakciju izolācijas līmeni - momentuzņēmumus, lai nodrošinātu transakcijas līmeņa momentuzņēmumus, kuros tiek izmantota arī rindu versiju izveide.

Iestatot READ_COMMITTED_SNAPSHOT datu bāzes opciju uz ON, tiek iespējota noteikta lasīšanas izolācija, izmantojot rindu versiju izveidi. Iestatot opciju ALLOW_SNAPSHOT_ISOLATION datu bāzi uz IESLĒGTS, tiek iespējota momentuzņēmumu izolācija. Ja datu bāzei ir iespējota kāda no opcijām, datu bāzes programma uztur katras modificētās rindas versiju. Ikreiz, kad transakcija modificē rindu, rindas attēls pirms modifikācijas tiek kopēts uz lapu versiju krātuvē. Versiju krātuve ir datu lapu kolekcija tempdb. Ja ir vairākas transakciju modifikācijas rindas, versiju ķēdē tiks saistītas vairākas šīs rindas versijas. Lasīšanas operācija, izmantojot rindu versiju izveidi, izgūs katras rindas pēdējo versiju, kas tika apstiprināta transakcijas vai pārskata sākuma laikā.

Lietojumprogrammas, kas rakstītas SQL Server 2008 vai jaunas SQL Server, ievieš lasīšanas saistību izolāciju, izmantojot rindu versiju izveidi, norādot transakciju izolācijas līmeni lasīšanas saistībām, kad READ_COMMITTED_SNAPSHOT datu bāzes opcija ir IESLĒGTA. Visos lasījumos tiks aplūkota rindas versija, kas tika veikta, kad sākās paziņojums. Tas nodrošinās pārskatu līmeņa datu momentuzņēmumu.

Lietojumprogrammas, kas rakstītas SQL Server, ieviesīs momentuzņēmumu izolāciju, norādot momentuzņēmumu transakciju izolācijas līmeni, kad ALLOW_SNAPSHOT_ISOLATION datu bāzes opcija ir IESLĒGTA. Visos momentuzņēmumu transakcijā tiks aplūkota rindas versija, kas tika veikta darījuma sākumā. Tas nodrošinās darījumu līmeņa datu momentuzņēmumu.

Transakcijām, kurās tiek izmantoti rindu izolācijas līmeņi, lasījumi nepieprasa datu koplietojamu bloķēšanu. Tas nozīmē, ka lasītāji, kas izmanto rindu versiju izveidi, neliedz citiem lasītājiem vai rakstītājiem piekļūt tiem pašiem datiem. Tāpat rakstnieks netraucē lasītājam. Tomēr rakstnieki traucē viens otram (pat tad, ja darbojas izolācijas līmenī, pamatojoties uz rindu versiju izveidi). Divas rakstīšanas operācijas nevar vienlaikus modificēt vienus un tos pašus datus.

Momentuzņēmumu izolācijas līdzeklis paplašina SQL Server 2008 bloķēšanas sistēmu, ļaujot lietojumprogrammām skatīt vērtības pirms jebkādas datu modifikācijas. Tas novērš lietojumprogrammas bloķēšanu, vienlaikus nodrošinot patiesi iesniegtus datus. SQL Server 2008 Read Committed momentuzņēmums aktivizē datu bāzes administratoru, ļaujot datus lasīt tikai lasāmās transakcijās. Tātad SI tikai lasāmo darījumu vienlaicīguma kontrole ir ļoti laba, taču nav skaidrs, vai tas attiecas uz atjaunināšanas darījumiem. Ilgtermiņa atjauninājumu darījumiem ir neizdevīgāk konkurēt ar īstermiņa augsta līmeņa darījumiem. Ja transakcija starp datu bāzēm mēģina izmantot momentuzņēmumu izolācijas (SI) standartu, nevis visas datu bāzes iestatītas, transakcija neizdodas. Tas neapšaubāmi rada zināmus šķēršļus mērogojamībai. Šķiet, ka Microsoft vēl ir tāls ceļš ejams, lai sasniegtu savu SI, kas ir spēcīgāks par SQL 92 specifikāciju.

Pirms jebkuras modifikācijas izveidojiet iepriekšējās versijas kopiju, un visas turpmākās lasīšanas darbības nolasīs kopēto versiju, un modifikācija izveidos jaunu versiju. Tādā veidāLasīšanas un rakstīšanas operācijas nebloķē viena otru. Šī līnijas versiju izveides mehānisma izmantošanas priekšrocība ir tā, ka programmas vienlaicīgums ir salīdzinoši augsts, bet trūkums ir tāds, ka, lai gan lietotājs nelasa netīrus datus, tā var būt datu vērtība, kas tiek modificēta un drīz beigsies. Ja modificējat datus, pamatojoties uz šo vērtību, kurai beidzies derīguma termiņš, tas radīs loģisku kļūdu

SQL komandas:


Atsauces saites:

Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.





Iepriekšējo:Elasticsearch (ES) replicē klona indeksu
Nākamo:cubase10.5 apmācība
Publicēts 29.01.2021 09:13:40 |
Xuexi
Publicēts 15.07.2021 20:37:16 |
Es to gribu, es gribu, es gribu, es gribugribēt
Publicēts 12.12.2021 01:22:12 |
Es to gribu, es gribu, es gribu to
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