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

Nézet: 28055|Válasz: 3

[Forrás] SQL Server többverziós egyidejű vezérlés

[Linket másol]
Közzétéve 2021. 01. 28. 17:55:52 | | |
Az adatbázis-konzisztencia szintén az egyik fontos mutató a DBMS teljesítményének mérésében. Jelenleg a legtöbb kereskedelmi adatbázis (DB2, SQL Server) a Two-Phase Locking (2PL) protokollt használja az egyidejű vezérléshez, amely biztosítja a párhuzamos tranzakciók végrehajtásának serializálását. Azonban a 2PL-nek minden adatot le kell zárnia, mielőtt olvashatna vagy írhatna hozzá. A blokkolókompatibilitási mátrixban az S zárak (megosztási zárak) és az X zárak (exkluzív zárak) nem kompatibilisek, így amikor az 1-es tranzakció olvasási műveletet hajt végre az A adaton (plusz egy S zárol), és a 2-es tranzakció írni akar az adathoz (hozzáadni egy X záratot), akkor a 2-es tranzakciónak meg kell várnia, amíg az 1-es tranzakció feloldja az S zárolást az A adaton, mielőtt továbblépne. A Multi-Version Concurrency Control (MVCC) jól megoldja ezt a problémát. Többverziós rendszerben minden írási adat új verziót generál, és az olvasási művelet szükség szerint képes olvasni a megfelelő verziót, így az olvasási és írási műveletek nem blokkolják egymást. Az MVCC növeli az egyidejű működést, de egyben több verzió fenntartásának tárolási költségét is bevezeti.

A Microsoft SQL Server adatbázis-motor új implementációt vezet be a meglévő tranzakciós izolációs szinthez – a kötelezett olvasásokhoz, amelyek szám-szintű pillanatképeket biztosítanak sorverziózással. Az SQL Server adatbázis motor egy új szintű tranzakciós izolációt is bevezet – snapshotokat, amelyek tranzakciós szintű pillanatképeket biztosítanak, amelyek sorverziózást is használnak.

Az READ_COMMITTED_SNAPSHOT adatbázis opció ON-ra állítása lehetővé teszi a kötelezett olvasási izolációt sorverziózással. Az ALLOW_SNAPSHOT_ISOLATION adatbázis opció ON beállítása lehetővé teszi a snapshot izolálást. Ha bármelyik opció engedélyezve van az adatbázisban, az adatbázis motor fenntartja az egyes sorok módosított verzióját. Amikor egy tranzakció módosít egy sort, a módosítás előtti sor képét másolják le a verzió áruház egyik oldalára. A verziótároló egy tempdb-ben található adatoldalak gyűjteménye. Ha több tranzakciómódosító sor van, akkor több verzió is összekapcsolódik egy verzióláncban. Egy olvasási művelet sorverziózással visszanyeri minden sor utolsó verzióját, amelyet a tranzakció vagy kijelentés kezdetekor elköteleztek.

Az SQL Server 2008-hoz írt vagy az SQL Serverhez új alkalmazások sorverziózással valósítják meg az olvasási commitek izolálását sorverziózással azáltal, hogy megadják a tranzakciós izolációs szintet az olvasási commitekhez, amikor a READ_COMMITTED_SNAPSHOT adatbázis opció BEKAPCSOLT. Minden olvasó azt a sorverziót nézi, amely elkötelezett volt, amikor a kijelentés elkezdődött. Ez egy nyilatkozat-szintű pillanatképet ad az adatokról.

Az SQL Serverhez írt alkalmazások úgy valósítják meg a snapshot izolálást, hogy megadják a snapshot tranzakciós izolációs szintet, amikor a ALLOW_SNAPSHOT_ISOLATION adatbázis opció BE van kapcsolva. Minden olvasott példány a snapshot tranzakcióban azt a sort nézi, amely a tranzakció kezdetekor elkötelezett volt. Ez tranzakciós szintű pillanatképet ad az adatokról.

Olyan tranzakciók esetén, amelyek soralapú izolációs szinteket használnak, az olvasások nem kérnek megosztott zárolást az adatokon. Ez azt jelenti, hogy a sorverziót használó olvasók nem akadályozzák meg más olvasókat vagy írókat abban, hogy hozzáférjenek ugyanahhoz az adatokhoz. Hasonlóképpen, az író nem akadályozza az olvasót. Azonban az írók egymás útjában állnak (még akkor is, ha a sorverziózás miatt elszigeteltnek futnak). Két írási művelet nem tudja ugyanazt az adatot egyszerre módosítani.

A Snapshot Isolation funkció kibővíti az SQL Server 2008 zárolási keretrendszerét azzal, hogy lehetővé teszi az alkalmazások számára, hogy az értékeket az adatmódosítás előtt megtekintsék. Ez megakadályozza, hogy az alkalmazás lezáruljon, miközben továbbra is valóban beküldött adatokat biztosít. Az SQL Server 2008 Read Committed Snapshot rendszere egy adatbázis-adminisztrátor aktiválására van szükség, így az adatok csak olvasható tranzakciók is olvashatóak. Tehát az SI egypezsinek ellenőrzése az csak olvasásra korlátozott tranzakciók esetén nagyon jó, de nem világos, hogy ez igaz-e a frissítési tranzakciókra. Kedvezőtlenebb a hosszú távú frissítési tranzakciók versenyezni a rövid távú, magas szintű tranzakciókkal. Ha egy tranzakció adatbázisokon keresztül megpróbálja használni a Snapshot Isolation (SI) szabványt az összes adatbázis helyett, a tranzakció megbukik. Ez kétségtelenül bizonyos akadályokat jelent a skálázhatóság előtt. Úgy tűnik, a Microsoftnak még hosszú út áll előtte, hogy elérje a saját, erősebb SI-t, mint az SQL 92 specifikációja.

Módosítás előtt készítsen másolatot az előző verzióból, és minden további olvasási művelet elolvassa a másolt verziót, és a módosítás új verziót hoz létre. Így,Az olvasási és írási műveletek nem blokkolják egymást. Ennek a sorverziós mechanizmusnak az előnye, hogy a program egyidejű használata viszonylag magas, de hátránya, hogy bár a felhasználó nem olvas szennyes adatot, lehet, hogy egy módosított adatérték készül lejárni. Ha az adatokat ezen lejárt érték alapján módosítod, logikai hibát okoz

SQL parancsok:


Hivatkozások:

A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.





Előző:Az elasticsearch (ES) replikálja a klón indexet
Következő:cubase10.5 tutorial
Közzétéve 2021. 01. 29. 9:13:40 |
xuexi
Közzétéve 2021. 07. 15. 20:37:16 |
Akarom, akarom, akarom, akarom, akaromakar
Közzétéve 2021. 12. 12. 1:22:12 |
Akarom, akarom, akarom
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