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

Skats: 1141|Atbildi: 1

[Avots] Atmiņai optimizētas tabulas SQL SERVER datu bāzēm

[Kopēt saiti]
Publicēts 2025-5-10 21:28:18 | | | |
Iepazīšanās ar atmiņai optimizētām tabulām

Atmiņai optimizētas tabulas ir tabulas, kas izveidotas, izmantojot CREATE TABLE (Transact-SQL).

Pēc noklusējuma atmiņai optimizētas tabulas ir pilnībā noturīgas. Tāpat kā transakcijas (tradicionālajās) diska tabulās, transakcijas atmiņai optimizētās tabulās ir pilnībā atomiskas, konsekventas, izolētas un noturīgas (ACID). Atmiņai optimizētas tabulas un vietēji kompilētas saglabātās procedūras atbalsta tikai Transact-SQL līdzekļu apakškopu.

Sākot ar SQL Server 2016 un Azure SQL datu bāzē, nav ierobežojumu atmiņā OLTP specifiskai salīdzināšanai vai kodu lapām.

Atmiņai optimizētas tabulas primārā atmiņa ir primārā atmiņa. Lasiet tabulas rindas no atmiņas un ierakstiet šīs rindas atmiņā. Vēl viena tabulas datu kopija tiek uzturēta diskā, bet tikai noturības nolūkos. Papildinformāciju par pastāvīgajām tabulām skatiet sadaļā Objektu krātuves izveide un pārvaldība atmiņas optimizācijai. Dati atmiņai optimizētajās tabulās tiek nolasīti no diska tikai datu bāzes atkopšanas laikā (piemēram, pēc servera atsāknēšanas).

Lai iegūtu lielāku veiktspēju, atmiņā esošā OLTP atbalsta pastāvīgas tabulas ar transakciju pastāvīgu latentumu. Aizkavētie pastāvīgie darījumi tiek saglabāti diskā neilgi pēc darījuma veikšanas un kontrole tiek atgriezta klientam. Apmaiņā pret uzlabotu veiktspēju, saistītie darījumi, kas netiek saglabāti diskā, tiek zaudēti servera avārijas vai kļūmju gadījumā.

Papildus noklusējuma pastāvīgajai atmiņai optimizētajām tabulām SQL Server atbalsta neierakstītas nepastāvīgas atmiņas optimizētas tabulas, un to dati netiek saglabāti diskā. Tas nozīmē, ka transakcijām šajās tabulās nav nepieciešams diska IO, bet, ja rodas servera kļūme vai kļūme, dati tiek zaudēti.

Atmiņā esošais OLTP integrējas ar SQL Server, lai nodrošinātu nevainojamu pieredzi visos aspektos, piemēram, izstrādē, izvietošanā, pārvaldāmībā un atbalstāmībā. Datu bāze var saturēt gan atmiņā esošus objektus, gan diska objektus.

Atmiņai optimizētās tabulas rindas ir versijas. Tas nozīmē, ka katrai tabulas rindai var būt vairākas versijas. Visas rindu versijas tiek uzturētas vienā tabulas datu struktūrā. Rindu versiju izveide tiek izmantota, lai iespējotu vienlaicīgu lasīšanu un rakstīšanu vienā rindā. Papildinformāciju par vienlaicīgu lasīšanu un rakstīšanu vienā rindā skatiet sadaļā Atmiņas optimizācijas tabulas lietas.

Aptuvenie soļi un lietošanas ierobežojumi

Darbības:

(1) Izveidojiet datu bāzi un MEMORY_OPTIMIZED_DATA failu grupu (mainīt datu bāzi pievienot failu grupu, katrai datu bāzei var būt tikai viena MEMORY_OPTIMIZED_DATA failu grupa!!) )
(2) Pievienojiet mapi failu grupai, lai saglabātu datu failus (lūdzu, neizveidojiet šo mapi iepriekš, izmantojiet mainīt datu bāzi pievienot failu () failu grupai)
(3) Izveidojiet pastāvīgas/nepastāvīgas atmiņai optimizētas tabulas (SQL Server 2014 ir saglabāts pēc noklusējuma), un jums ir jādefinē arī primārā atslēga, pamatojoties uz neapkopotu jaucējindeksu. Jauktie indeksi ir vienīgais atbalstītais indeksa tips atmiņai optimizētās tabulās.
(4) Izmantojiet lokāli kompilētas saglabātās procedūras: Atmiņai optimizētas tabulas atbalsta lokāli kompilētas saglabātās procedūras, ja vien šīs saglabātās procedūras atsaucas tikai uz atmiņai optimizētām tabulām.

Ierobežojumu:

(1) Atmiņai optimizētā tabula jāievieto datu bāzē ar CONTAINS MEMORY_OPTIMIZED_DATA failu grupu.
(2) Atmiņai optimizētajā tabulā ir jādefinē primārā atslēga, kuras pamatā ir neapkopots jaucējindekss, un tabula ir jādefinēĀrējās atslēgas vai ierobežojumu pārbaude netiek atbalstīta
(3) Atmiņas optimizācijas tabulā jābūt pietiekami daudz atmiņas, pretējā gadījumā tādas darbības kā atjauninājumu ievietošana neizdosies.
(4) SQL Server 2014 ir daudz ierobežojumu šīm tabulām. Piemēram, tie neatbalsta ārējās atslēgas vai ierobežojumu pārbaudi (kas šķiet līdzīgi MySQL atmiņas glabāšanas dzinējam), viņiNetiek atbalstīti arī IDENTITY lauki vai DML aktivizētāji

Apmācības izmantošana

Datu bāzes versijas ir šādas:

Microsoft SQL Server 2022 (RTM-CU15-GDR) (KB5046059) - 16.0.4150.1 (x64)
        2024. gada 25. septembris 17:34:41
        Autortiesības (C) 2022 Microsoft Corporation
        Enterprise Edition: Core licencēšana (64 bitu) operētājsistēmā Linux (Ubuntu 22.04.4 LTS) <X64>

Vispirms izveidojiet datu bāzi un failu grupu ar šādu komandu:

Ja neizveidojat atmiņai optimizētu grupu, izveidojot atmiņai optimizētu tabulu, tiks ziņots par kļūdu:Nevar izveidot atmiņai optimizētas tabulas. Lai izveidotu atmiņai optimizētas tabulas, datu bāzei ir jābūt MEMORY_OPTIMIZED_FILEGROUP, kas ir tiešsaistē un kurā ir vismaz viens konteiners.

Izveidojiet divas atmiņai optimizētas tabulas, lai pārbaudītu, vienu pastāvīgu un otru nepastāvīgu, izmantojot šādu komandu:

Atmiņas optimizācijas tabulai ir divas iespējas (IZTURĪBA = SCHEMA_AND_DATA), (IZTURĪBA = SCHEMA_ONLY)
Izturības tabula: IZTURĪBA =SCHEMA_AND_DATA
Nenoturīga tabula: IZTURĪBA =SCHEMA_ONLY

Testi tiek ievietoti atsevišķi atmiņas optimizācijas tabulā100 000 rakstu(faktiski 100002 vienumu) datiem, komanda ir šāda:





Noturība aizņem 28 sekundes, lai ieslēgtos, un 1 sekundi bez noturības

Atsauce:

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:Mīlestība pārstrādāt klēpjdatoru kvalitātes pārbaudes programmatūru
Nākamo:C# 8.0 sintakse izmanto indeksu un diapazonu
 Saimnieks| Publicēts 2025-5-10 21:36:40 |
Parastā tabula ievieto 100 000 datu vienību, un tās izpilde aizņem 18 sekundes. Kā parādīts zemāk:



Skriptu:
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