Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 1311|Atsakyti: 1

[Šaltinis] SQL SERVER duomenų bazių atminčiai optimizuotos lentelės

[Kopijuoti nuorodą]
Paskelbta 2025-05-10 21:28:18 | | | |
Įvadas į atminčiai optimizuotas lenteles

Atminčiai optimizuotos lentelės yra lentelės, sukurtos naudojant CREATE TABLE (Transact-SQL).

Pagal numatytuosius nustatymus atminčiai optimizuotos lentelės yra visiškai patvarios. Kaip ir operacijos (tradicinėse) disko lentelėse, operacijos atminčiai optimizuotose lentelėse yra visiškai atominės, nuoseklios, izoliuotos ir nuolatinės (ACID). Atminčiai optimizuotos lentelės ir natūraliai sukompiliuotos saugomos procedūros palaiko tik dalį Transact-SQL funkcijų.

Nuo "SQL Server 2016" ir "Azure SQL" duomenų bazėje nėra jokių apribojimų atmintyje esančiam OLTP sugretinimui ar kodų puslapiams.

Pirminė atminčiai optimizuotos lentelės atmintis yra pirminė atmintis. Perskaitykite lentelės eilutes iš atminties ir įrašykite tas eilutes į atmintį. Kita lentelės duomenų kopija saugoma diske, bet tik patvarumo tikslais. Daugiau informacijos apie nuolatines lenteles rasite Objektų saugyklos kūrimas ir valdymas atminties optimizavimui. Duomenys atminčiai optimizuotose lentelėse nuskaitomi iš disko tik atkuriant duomenų bazę (pvz., po serverio perkrovimo).

Siekiant didesnio našumo, atmintyje esanti OLTP palaiko nuolatines lenteles su nuolatine transakcijos delsa. Uždelstos nuolatinės operacijos išsaugomos diske netrukus po operacijos įvykdymo ir kontrolė grąžinama klientui. Mainais už geresnį našumą, įvykdytos operacijos, kurios nėra išsaugotos diske, prarandamos serverio gedimo ar perkėlimo atveju.

Be numatytųjų nuolatinei atminčiai optimizuotų lentelių, SQL serveris palaiko neįrašytas nenuolatines atminčiai optimizuotas lenteles, o jų duomenys neišlieka diske. Tai reiškia, kad operacijoms šiose lentelėse nereikia jokio disko IO, tačiau jei įvyksta serverio gedimas ar perjungimas, duomenys prarandami.

Atminties OLTP integruojamas su SQL serveriu, kad užtikrintų sklandžią patirtį visais aspektais, tokiais kaip kūrimas, diegimas, valdymas ir palaikymas. Duomenų bazėje gali būti ir atmintyje esančių objektų, ir disko objektų.

Atminčiai optimizuotos lentelės eilutės yra versijos. Tai reiškia, kad kiekviena lentelės eilutė gali turėti kelias versijas. Visos eilučių versijos tvarkomos toje pačioje lentelės duomenų struktūroje. Eilučių versijų kūrimas naudojamas norint vienu metu skaityti ir rašyti į tą pačią eilutę. Daugiau informacijos apie vienalaikius skaitymus ir rašymus toje pačioje eilutėje ieškokite Atminties optimizavimo lentelės dalykai.

Apytiksliai naudojimo žingsniai ir apribojimai

Veiksmus:

(1) Sukurkite duomenų bazę ir MEMORY_OPTIMIZED_DATA failų grupę (keisti duomenų bazę pridėti failų grupę, kiekviena duomenų bazė gali turėti tik vieną MEMORY_OPTIMIZED_DATA failų grupę!!) )
(2) Pridėkite aplanką prie failų grupės, kad saugotumėte duomenų failus (nekurkite šio aplanko iš anksto, naudokite keisti duomenų bazę pridėti failą () prie failų grupės)
(3) Sukurkite nuolatines / nenuolatines atminčiai optimizuotas lenteles ("SQL Server 2014" išlieka pagal numatytuosius nustatymus), taip pat turite apibrėžti pirminį raktą, pagrįstą neagreguotu maišos indeksu. Maišos indeksai yra vienintelis palaikomas indekso tipas atminčiai optimizuotose lentelėse.
(4) Naudokite vietoje kompiliuotas saugomas procedūras: Atminčiai optimizuotos lentelės palaiko vietoje kompiliuotas saugomas procedūras, jei tos saugomos procedūros nurodo tik atminčiai optimizuotas lenteles.

Riba:

(1) Atminčiai optimizuota lentelė turi būti patalpinta duomenų bazėje su failų grupe CONTAINS MEMORY_OPTIMIZED_DATA.
(2) Atminčiai optimizuotoje lentelėje turi būti apibrėžtas pirminis raktas, pagrįstas neagreguotu maišos indeksu, ir lentelė turi būti apibrėžtaIšorinio rakto arba apribojimų tikrinimas nepalaikomas
(3) Atminties optimizavimo lentelėje turi būti pakankamai atminties, kitaip tokios operacijos kaip naujinimų įterpimas nepavyks.
(4) "SQL Server 2014" turi daug apribojimų šioms lentelėms. Pavyzdžiui, jie nepalaiko išorinių raktų ar apribojimų tikrinimo (kuris jaučiasi panašus į MySQL atminties saugojimo variklį), jieIDENTITY laukai arba DML paleidikliai taip pat nepalaikomi

Naudokite mokymo programą

Duomenų bazės versijos yra šios:

"Microsoft SQL Server 2022" (RTM-CU15-GDR) (KB5046059) – 16.0.4150.1 (x64)
        2024 m. rugsėjo 25 d. 17:34:41
        Autorių teisės (C) 2022 m. "Microsoft Corporation"
        "Enterprise Edition": branduolio licencijavimas (64 bitų) "Linux" sistemoje (Ubuntu 22.04.4 LTS) <X64>

Pirmiausia sukurkite duomenų bazę ir failų grupę naudodami šią komandą:

Jei nesukursite atminčiai optimizuotos grupės, kuriant atminčiai optimizuotą lentelę bus pranešta apie klaidą:Neįmanoma sukurti atminčiai optimizuotų lentelių. Norint kurti atminčiai optimizuotas lenteles, duomenų bazėje turi būti MEMORY_OPTIMIZED_FILEGROUP, kuri yra prisijungusi ir turi bent vieną konteinerį.

Sukurkite dvi atminčiai optimizuotas lenteles, kurias norite išbandyti, vieną nuolatinę ir vieną nenuolatinę, naudodami šią komandą:

Atminties optimizavimo lentelėje yra dvi parinktys (DURABILITY = SCHEMA_AND_DATA), (DURABILITY = SCHEMA_ONLY)
Patvarumo lentelė: ILGAAMŽIŠKUMAS =SCHEMA_AND_DATA
Nepatvari lentelė: ILGAAMŽIŠKUMAS =SCHEMA_ONLY

Testai įterpiami atskirai į atminties optimizavimo lentelę100 000 straipsnių(iš tikrųjų 100002 elementai) duomenų, komanda yra tokia:





Atkaklumas įsijungia per 28 sekundes ir 1 sekundę be atkaklumo

Nuoroda:

Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.




Ankstesnis:Meilė perdirbti nešiojamojo kompiuterio kokybės tikrinimo programinė įranga
Kitą:C# 8.0 sintaksė naudoja indeksą ir diapazoną
 Savininkas| Paskelbta 2025-05-10 21:36:40 |
Įprasta lentelė įterpia 100 000 duomenų vienetų ir užtrunka 18 sekundžių. Kaip parodyta žemiau:



Scenarijus:
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com