Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 1141|Odpoveď: 1

[Zdroj] Tabuľky optimalizované pre pamäť pre SQL SERVER databázy

[Kopírovať odkaz]
Zverejnené 10.5.2025 21:28:18 | | | |
Úvod do tabuliek optimalizovaných pre pamäť

Pamäťovo optimalizované tabuľky sú tabuľky vytvorené pomocou CREATE TABLE (Transact-SQL).

Predvolene sú tabuľky optimalizované pre pamäť plne perperzistentné. Rovnako ako transakcie na (tradičných) diskových tabuľkách, transakcie na tabuľkách optimalizovaných pre pamäť sú plne atómové, konzistentné, izolované a perzistentné (ACID). Pamäťovo optimalizované tabuľky a natívne kompilované uložené procedúry podporujú len podmnožinu funkcií Transact-SQL.

Od SQL Server 2016 a Azure SQL Database neexistujú žiadne obmedzenia na OLTP-špecifickú koláciu alebo kódové stránky v pamäti.

Primárna pamäť tabuľky optimalizovanej pre pamäť je primárna pamäť. Čítaj riadky z tabuľky z pamäti a zapisuj ich do pamäte. Ďalšia kópia údajov tabuľky sa uchováva na disku, ale len na účely perzistencie. Pre viac informácií o perzistentných tabuľkách pozri Vytvoriť a spravovať úložisko objektov na optimalizáciu pamäte. Dáta v tabuľkách optimalizovaných pre pamäť sa čítajú z disku iba počas obnovy databázy (napríklad po reštarte servera).

Pre väčšie výkonové zisky podporuje OLTP v pamäti perzistentné tabuľky s transakčnou trvalou latenciou. Oneskorené trvalé transakcie sa ukladajú na disk krátko po vykonaní transakcie a vrátení kontroly klientovi. Výmenou za zlepšenie výkonu sa v prípade pádu servera alebo failoveru strácajú zaviazané transakcie, ktoré nie sú uložené na disk.

Okrem predvolených tabuliek optimalizovaných pre perzistentnú pamäť SQL Server podporuje nezaznamenané tabuľky optimalizované pre perzistentnú pamäť a ich dáta sa na disku neuchovávajú. To znamená, že transakcie na týchto tabuľkách nevyžadujú žiadny diskový IO, ale ak dôjde k zlyhaniu servera alebo prepnutiu, dáta sa stratia.

In-memory OLTP sa integruje so SQL Serverom, aby poskytol plynulý zážitok vo všetkých aspektoch, ako je vývoj, nasadenie, spravovateľnosť a podpora. Databáza môže obsahovať objekty v pamäti aj objekty založené na disku.

Riadky v tabuľke optimalizovanej pre pamäť sú verziované. To znamená, že každý riadok v tabuľke môže mať viacero verzií. Všetky verzie riadkov sú udržiavané v tej istej tabuľkovej dátovej štruktúre. Verzionovanie riadkov sa používa na umožnenie súbežného čítania a zápisu do toho istého riadku. Pre viac informácií o súbežných čítaniach a zápisoch do toho istého riadku pozri Veci v tabuľke optimalizácie pamäte.

Približné kroky a obmedzenia použitia

Kroky:

(1) Vytvoriť databázu a MEMORY_OPTIMIZED_DATA súborovú skupinu (zmeniť databázu pridať súborovú skupinu, každá databáza môže mať len jednu MEMORY_OPTIMIZED_DATA súborovú skupinu!!) )
(2) Pridať priečinok do skupiny súborov na uloženie dátových súborov (prosím, nevytvárajte tento priečinok vopred, použite alter database add file() do súborovej skupiny)
(3) Vytvárať tabuľky optimalizované pre trvalú/neperzistentnú pamäť (SQL Server 2014 je predvolene zachovaný) a musíte tiež definovať primárny kľúč na základe neagregovaného hash indexu. Hashed indexy sú jediným podporovaným typom indexu v tabuľkách optimalizovaných pre pamäť.
(4) Použitie lokálne skompilovaných uložených procedúr: Tabuľky optimalizované pre pamäť podporujú lokálne kompilované uložené procedúry, pokiaľ tieto uložené procedúry odkazujú iba na tabuľky optimalizované pre pamäť.

Medza:

(1) Tabuľka optimalizovaná pre pamäť musí byť umiestnená pod databázou s MEMORY_OPTIMIZED_DATA súborovou skupinou CONTAIN.
(2) Pamäťovo optimalizovaná tabuľka musí definovať primárny kľúč na základe neagregovaného hash indexu a tabuľka musí byť definovanáKontrola cudzích kľúčov alebo obmedzení nie je podporovaná
(3) Tabuľka optimalizácie pamäte musí obsahovať dostatok pamäte, inak operácie ako vkladanie aktualizácií zlyhajú.
(4) SQL Server 2014 má na tieto tabuľky mnoho obmedzení. Napríklad nepodporujú cudzie kľúče ani kontrolu obmedzení (čo pripomína pamäťový engine MySQL), oniPolia IDENTITY alebo DML spúšťače tiež nie sú podporované

Použi tutoriál

Databázové verzie sú nasledovné:

Microsoft SQL Server 2022 (RTM-CU15-GDR) (KB5046059) - 16.0.4150.1 (X64)
        25. sep 2024 17:34:41
        Copyright (C) 2022 Microsoft Corporation
        Enterprise Edition: Licencovanie založené na jadrách (64-bit) na Linuxe (Ubuntu 22.04.4 LTS) <X64>

Najprv vytvorte databázovú a súborovú skupinu pomocou nasledujúceho príkazu:

Ak nevytvoríte skupinu optimalizovanú pre pamäť, pri vytvorení tabuľky optimalizovanej pre pamäť sa zobrazí chyba:Nedá sa vytvoriť tabuľky optimalizované pre pamäť. Na vytvorenie tabuliek optimalizovaných pre pamäť musí mať databáza MEMORY_OPTIMIZED_FILEGROUP, ktorý je online a obsahuje aspoň jeden kontajner.

Vytvorte dve tabuľky optimalizované pre pamäť na testovanie, jednu perzistentnú a jednu neperzistentnú, pomocou nasledujúceho príkazu:

Tabuľka optimalizácie pamäte má dve možnosti (ODOLNOSŤ = SCHEMA_AND_DATA), (ODOLNOSŤ = SCHEMA_ONLY)
Tabuľka odolnosti: TRVÁCNOSŤ =SCHEMA_AND_DATA
Neperzistentná tabuľka: TRVÁCNOSŤ =SCHEMA_ONLY

Testy sa vkladajú samostatne do tabuľky optimalizácie pamäte100 000 článkov(v skutočnosti 100002 položky) dát, príkaz je nasledovný:





Pretrvávanie trvá 28 sekúnd na zapnutie a 1 sekunda bez pretrvávania

Referencia:

Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.




Predchádzajúci:Milujem recyklovať softvér na kontrolu kvality notebookov
Budúci:Syntax C# 8.0 používa index a rozsah
 Prenajímateľ| Zverejnené 10. 5. 2025 o 21:36:40 |
Bežná tabuľka vloží 100 000 dát a jej vykonanie trvá 18 sekúnd. Ako je uvedené nižšie:



Písmo:
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com