See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 1141|Vastuse: 1

[Allikas] Mälule optimeeritud tabelid SQL SERVER andmebaasidele

[Kopeeri link]
Postitatud 2025-5-10 21:28:18 | | | |
Sissejuhatus mäluoptimeeritud tabelitesse

Mälule optimeeritud tabelid on loodud CREATE TABLE (Transact-SQL) abil.

Vaikimisi on mälule optimeeritud tabelid täielikult püsivad. Nagu (traditsiooniliste) kettapõhiste tabelite tehingud, on mälupõhiste tabelite tehingud täielikult aatomilised, järjepidevad, isoleeritud ja püsivad (ACID). Mälule optimeeritud tabelid ja natiivselt kompileeritud salvestatud protseduurid toetavad vaid osa Transact-SQL funktsioonidest.

Alates SQL Server 2016-st ja Azure SQL Database'is puuduvad piirangud mälusisesele OLTP-spetsiifilisele kolleerimisele või koodilehtedele.

Mälule optimeeritud tabeli primaarne mälu on primaarne mälu. Loe tabelist ridu mälust ja kirjuta need read mällu. Teine koopia tabeliandmetest hoitakse kettal, kuid ainult püsivuse eesmärgil. Lisateabe saamiseks püsivate tabelite kohta vaata "Objektide loomine ja haldus mälu optimeerimiseks". Mälule optimeeritud tabelites loetakse andmeid kettalt ainult andmebaasi taastamise ajal (näiteks pärast serveri taaskäivitust).

Suurema jõudluse parandamiseks toetab mälus OLTP püsivaid tabeleid tehingulise püsiva latentsusega. Viivitusega püsivad tehingud salvestatakse kettale vahetult pärast tehingu sõlmimist ja kontroll tagastatakse kliendile. Parandatud jõudluse eest kaovad kinnitatud tehingud, mis ei ole kettale salvestatud, serveri krahhi või varuvariandi korral.

Lisaks vaikimisi püsiva mäluga optimeeritud tabelitele toetab SQL Server salvestamata mittepüsivaid mälule optimeeritud tabeleid ning nende andmeid kettal ei püsita. See tähendab, et nende tabelite tehingud ei vaja ketta IO-d, kuid kui serveri tõrge või failover juhtub, kaovad andmed.

Mälus oltp integreerub SQL Serveriga, pakkudes sujuvat kogemust kõigis aspektides, nagu arendus, juurutamine, hallatavus ja toetatavus. Andmebaas võib sisaldada nii mälus olevaid objekte kui ka kettapõhiseid objekte.

Mälule optimeeritud tabeli read on versioonistatud. See tähendab, et igal tabeli real võib olla mitu versiooni. Kõik reaversioonid hoitakse samas tabeli andmestruktuuris. Reaversiooni kasutatakse samaaegsete lugemiste ja kirjutamiste võimaldamiseks samale reale. Lisateabe saamiseks samaaegsete lugemiste ja kirjutamiste kohta samasse reale vaata Things in the Memory Optimization Table.

Ligikaudsed sammud ja kasutuspiirangud

Sammud:

(1) Loo andmebaas ja MEMORY_OPTIMIZED_DATA failigrupp (muuda andmebaasi lisa failigrupp, igal andmebaasil võib olla ainult üks MEMORY_OPTIMIZED_DATA failigrupp!!) )
(2) Lisa failigruppi kaust andmefailide salvestamiseks (palun ära loo seda kausta ette, kasuta alter database add file() to filegroup)
(3) Loo püsivad/mittepüsivad mälule optimeeritud tabelid (SQL Server 2014 on vaikimisi säilitatud) ning pead määratlema ka primaarvõtme, mis põhineb mittekoondatud räsi indeksil. Räsitud indeksid on ainsad toetatud indeksitüübid mälule optimeeritud tabelites.
(4) Kasuta lokaalselt kompileeritud salvestatud protseduure: Mälule optimeeritud tabelid toetavad lokaalselt kompileeritud salvestatud protseduure, kui need salvestatud protseduurid viitavad ainult mälule optimeeritud tabelitele.

Piirang:

(1) Mälule optimeeritud tabel tuleb paigutada andmebaasi alla koos CONTAINS-MEMORY_OPTIMIZED_DATA failigrupiga.
(2) Mälule optimeeritud tabel peab määratlema primaarvõtme, mis põhineb mitte-koondatud räsi indeksil, ning tabel peab olema määratletudVõõrvõtme või piirangute kontrollimine ei ole toetatud
(3) Mälu optimeerimise tabelil peab olema piisavalt mälu, vastasel juhul ebaõnnestuvad operatsioonid nagu uuenduste lisamine.
(4) SQL Server 2014-l on nende tabelite osas palju piiranguid. Näiteks nad ei toeta võõrvõtmeid ega piirangute kontrollimist (mis tundub sarnane MySQL-i mälusalvestusmootorile), nadIDENTITY väljad või DML päästikud ei ole samuti toetatud

Kasuta õpetust

Andmebaasi versioonid on järgmised:

Microsoft SQL Server 2022 (RTM-CU15-GDR) (KB5046059) - 16.0.4150.1 (X64)
        25. sept 2024 17:34:41
        Autoriõigus (C) 2022 Microsoft Corporation
        Enterprise Edition: Tuumapõhine litsentsimine (64-bitine) Linuxil (Ubuntu 22.04.4 LTS) <X64>

Esmalt loo andmebaas ja failigrupp järgmise käsuga järgmiselt:

Kui te ei loo mälule optimeeritud gruppi, teatatakse veast, kui loote mäluoptimeeritud tabeli:Ei saa luua mälule optimeeritud tabeleid. Mälule optimeeritud tabelite loomiseks peab andmebaasil olema MEMORY_OPTIMIZED_FILEGROUP, mis on võrgus ja millel on vähemalt üks konteiner.

Loo kaks mälule optimeeritud tabelit testimiseks, üks püsiv ja teine mittepüsiv, järgmise käsuga:

Mälu optimeerimistabelil on kaks valikut (VASTUPIDAVUS = SCHEMA_AND_DATA), (VASTUPIDAVUS = SCHEMA_ONLY)
Vastupidavuse tabel: VASTUPIDAVUS =SCHEMA_AND_DATA
Mittepüsiv tabel: VASTUPIDAVUS =SCHEMA_ONLY

Testid lisatakse eraldi mälu optimeerimise tabelisse100 000 artiklit(tegelikult 100002 elemente) andmeid, on käsk järgmine:





Püsivuse sisselülitumine võtab 28 sekundit ja ilma püsivuseta 1 sekundi

Viide:

Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.




Eelmine:Armastan sülearvutite kvaliteedikontrolli tarkvara taaskasutamist
Järgmine:C# 8.0 süntaksis kasutab indeksit ja vahemikku
 Üürileandja| Postitatud 2025-5-10 21:36:40 |
Tavaline tabel sisestab 100 000 andmetükki ja selle täitmiseks kulub 18 sekundit. Nagu allpool näidatud:



Skripti:
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com