Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 1141|Vastaus: 1

[Lähde] Muistiin optimoidut taulukot SQL SERVER -tietokannoille

[Kopioi linkki]
Julkaistu 2025-5-10 21:28:18 | | | |
Johdanto muistiin optimoituihin taulukoihin

Muistiin optimoidut taulut ovat tauluja, jotka on luotu CREATE TABLE (Transact-SQL) -menetelmällä.

Oletuksena muistiin optimoidut taulukot ovat täysin pysyviä. Kuten (perinteisten) levypohjaisten taulujen transaktiot, muistiin optimoitujen taulujen transaktiot ovat täysin atomisia, johdonmukaisia, erillisiä ja pysyviä (ACID). Muistiin optimoidut taulukot ja natiivisti käännetyt tallennetut proseduurit tukevat vain osajoukkoa Transact-SQL-ominaisuuksista.

SQL Server 2016:sta lähtien ja Azure SQL Databasessa ei ole rajoituksia muistin sisäisille OLTP-kohtaisille kokoamis- tai koodisivuille.

Muistiin optimoidun taulukon ensisijainen muisti on ensisijainen muisti. Lue rivit taulukosta ulkomuistista ja kirjoita ne muistiin. Toinen kopio taulukon datasta säilytetään levyllä, mutta vain pysyvyyden vuoksi. Lisätietoja pysyvistä taulukoista löytyy kohdasta Create and manage storage of objects for memory optimization. Muistiin optimoituissa taulukoissa luetaan levyltä vain tietokannan palautuksen yhteydessä (esimerkiksi palvelimen uudelleenkäynnistyksen jälkeen).

Suorituskyvyn parantamiseksi muistissa oleva OLTP tukee pysyviä taulukoita, joissa on transaktionaalinen pysyvä viive. Viivästetyt pysyvät transaktiot tallennetaan levylle pian tapahtuman sitoutumisen jälkeen ja ohjaus palautetaan asiakkaalle. Suorituskyvyn parantamiseksi sitoutuneet tapahtumat, joita ei tallenneta levylle, menetetään palvelimen kaatumisen tai vikojen ohituksen sattuessa.

Oletustaulujen lisäksi, jotka ovat pysyvästi muistiin optimoituja, SQL Server tukee tallentamattomia, ei-pysyvää muistia hyödyntäviä tauluja, eikä niiden tietoja säilytetä levyllä. Tämä tarkoittaa, että näiden taulujen transaktiot eivät vaadi levyn IO:ta, mutta jos palvelimen vika tai failover tapahtuu, data menetetään.

In-memory OLTP integroituu SQL Serveriin tarjoten saumattoman kokemuksen kaikilla osa-alueilla, kuten kehityksessä, käyttöönotossa, hallittavuudessa ja tuettavuudessa. Tietokanta voi sisältää sekä muistissa olevia objekteja että levypohjaisia objekteja.

Muistioptimoidun taulukon rivit on versioittu. Tämä tarkoittaa, että jokaisella taulukon rivillä voi olla useita versioita. Kaikki riviversiot ylläpidetään samassa taulukkorakenteessa. Riviversiointia käytetään mahdollistamaan samanaikaiset luku- ja kirjoitukset samalle riville. Lisätietoja samanaikaisista luku- ja kirjoituksista samalle riville löytyy kohdasta Asiat muistin optimointitaulukossa.

Likimääräiset vaiheet ja käyttörajoitukset

Portaat:

(1) Luo tietokanta ja MEMORY_OPTIMIZED_DATA tiedostoryhmä (muokkaa tietokantaa, lisää tiedostoryhmä, jokaisessa tietokannassa voi olla vain yksi MEMORY_OPTIMIZED_DATA tiedostoryhmä!!) )
(2) Lisää kansio tiedostoryhmään tiedostojen tallentamista varten (älä luo tätä kansiota etukäteen, käytä alter database add file() to file() to filegroupiin)
(3) Luo pysyvät/ei-pysyvät muistiin optimoidut taulut (SQL Server 2014 säilyy oletuksena), ja sinun täytyy myös määritellä ensisijainen avain ei-aggregoidun hajautusindeksin perusteella. Hajautetut indeksit ovat ainoa tuettu indeksityyppi muistiin optimoiduissa taulukoissa.
(4) Käytä paikallisesti käännettyjä tallennettuja proseduureja: Muistiin optimoidut taulukot tukevat paikallisesti käännettyjä, tallennettuja proseduureja, kunhan ne viittaavat vain muistiin optimoituihin taulukoihin.

Rajoittaa:

(1) Muistiin optimoitu taulu on sijoitettava tietokannan alle, jossa on CONTAINS MEMORY_OPTIMIZED_DATA tiedostoryhmä.
(2) Muistiin optimoitussa taulukossa on määriteltävä ensisijainen avain ei-aggregoidun hajautusindeksin perusteella, ja taulukko on määriteltäväVierasavaimen tai rajoitteiden tarkistusta ei tueta
(3) Muistin optimointitaululla täytyy olla riittävästi muistia, muuten esimerkiksi päivitysten lisääminen epäonnistuu.
(4) SQL Server 2014:llä on monia rajoituksia näissä taulukoissa. Esimerkiksi ne eivät tue vieraita avaimia tai rajoitusten tarkistusta (joka tuntuu samankaltaiselta kuin MySQL:n muistitallennusmoottori), vaanIDENTITY-kenttiä tai DML-laukaisijoita ei myöskään tueta

Käytä opetusta

Tietokantaversiot ovat seuraavat:

Microsoft SQL Server 2022 (RTM-CU15-GDR) (KB5046059) - 16.0.4150.1 (X64)
        25. syyskuuta 2024 klo 17:34:41
        Tekijänoikeus (C) 2022 Microsoft Corporation
        Enterprise Edition: Core-pohjainen lisensointi (64-bittinen) Linuxilla (Ubuntu 22.04.4 LTS) <X64>

Luo ensin tietokanta- ja tiedostoryhmä seuraavalla komennolla:

Jos et luo muistiin optimoitua ryhmää, virhe raportoidaan kun luot muistioptimoidun taulun:En voi luoda muistiin optimoituja taulukoita. Muistioptimoitujen taulukoiden luomiseksi tietokannalla täytyy olla MEMORY_OPTIMIZED_FILEGROUP, joka on verkossa ja jossa on vähintään yksi kontti.

Luo kaksi muistiin optimoitua taulukkoa testattavaksi, yksi pysyvä ja toinen ei-pysyvä, seuraavalla komennolla:

Muistin optimointitaulukossa on kaksi vaihtoehtoa (KESTÄVYYS = SCHEMA_AND_DATA), (KESTÄVYYS = SCHEMA_ONLY)
Kestävyystaulukko: KESTÄVYYS =SCHEMA_AND_DATA
Ei-pysyvä taulukko: KESTÄVYYS =SCHEMA_ONLY

Testit lisätään erikseen muistin optimointitaulukkoon100 000 artikkelia(todellisuudessa 100002 kohteet) dataa, komento on seuraava:





Persistence käynnistyy 28 sekunnissa ja 1 sekunnin ilman persistenssiä

Viittaus:

Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.




Edellinen:Rakastan kannettavien kannettavien laaduntarkastusohjelmistojen kierrätystä
Seuraava:C# 8.0 -syntaksi käyttää indeksiä ja vaihteluväliä
 Vuokraisäntä| Julkaistu 2025-5-10 21:36:40 |
Tavallinen taulukko lisää 100 000 datapalaa ja suorittaa sen 18 sekuntia. Kuten alla on esitetty:



Käsikirjoitus:
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com