Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Met slechts enkele uitzonderingen hebt u toegang tot tabellen die zijn geoptimaliseerd voor geheugen met behulp van elke Transact-SQL query- of DML-bewerking (selecteren, invoegen, bijwerken of verwijderen), ad-hocbatches en SQL-modules, zoals opgeslagen procedures, tabelwaardefuncties, triggers en weergaven.
Geïnterpreteerde Transact-SQL verwijst naar Transact-SQL batches of opgeslagen procedures anders dan een systeemeigen gecompileerde opgeslagen procedure. Geïnterpreteerde Transact-SQL-toegang tot tabellen die voor geheugen geoptimaliseerd zijn, wordt interop-toegang genoemd.
Vanaf SQL Server 2016 (13.x) kunnen query's in geïnterpreteerde Transact-SQL tabellen die zijn geoptimaliseerd voor geheugen, parallel scannen in plaats van alleen in de seriële modus.
Tabellen die zijn geoptimaliseerd voor geheugen, kunnen ook worden geopend met behulp van een systeemeigen gecompileerde opgeslagen procedure. Systeemeigen gecompileerde opgeslagen procedures worden aanbevolen voor prestatiekritieke OLTP-bewerkingen.
Geïnterpreteerde Transact-SQL toegang wordt aanbevolen voor deze scenario's:
Ad hoc vragen en beheertaken.
Rapportagequery's, die doorgaans gebruikmaken van constructies die niet beschikbaar zijn in systeemeigen opgeslagen procedures (zoals vensterfuncties , ook wel OVER-functies genoemd).
Als u prestatiekritieke onderdelen van uw toepassing wilt migreren naar tabellen die zijn geoptimaliseerd voor geheugen, met minimale (of geen) toepassingscodewijzigingen. U kunt mogelijk prestatieverbeteringen zien van het migreren van tabellen. Als u vervolgens opgeslagen procedures migreert naar systeemeigen opgeslagen procedures, ziet u mogelijk verdere prestatieverbeteringen.
Wanneer een Transact-SQL-instructie niet beschikbaar is voor systeemeigen gecompileerde opgeslagen procedures.
De volgende Transact-SQL constructies worden echter niet ondersteund in geïnterpreteerde Transact-SQL opgeslagen procedures die toegang hebben tot gegevens in een tabel die is geoptimaliseerd voor geheugen.
| Area | Niet ondersteund |
|---|---|
| Toegang tot tabellen | TRUNCATE TABLE SAMENVOEGEN (tabel die is geoptimaliseerd voor geheugen als doel) Dynamische cursors en sleutelsetcursors (deze worden automatisch gedegradeerd naar statisch). Toegang vanuit CLR-modules met behulp van de contextverbinding. Verwijst naar een tabel die is geoptimaliseerd voor geheugen vanuit een geïndexeerde weergave. |
| Meerdere databases | Query's voor meerdere databases Transacties tussen databases Gekoppelde servers |
Tabelhints
Zie voor meer informatie over tabelhints. Tabelhints (Transact-SQL). De SNAPSHOT is toegevoegd ter ondersteuning van In-Memory OLTP.
De volgende tabelhints worden niet ondersteund bij het openen van een tabel die is geoptimaliseerd voor geheugen met behulp van geïnterpreteerde Transact-SQL.
HOLDLOCK
PAGLOCK
READUNCOMMITTED
TABLOCKXX
IGNORE_CONSTRAINTS
READCOMMITTED
ROWLOCK
UPDLOCK
IGNORE_TRIGGERS
READCOMMITTEDLOCK
SPATIAL_WINDOW_MAX_CELLS = geheel getal
XLOCK
NOWAIT
READPAST
TABLOCK
Wanneer u toegang krijgt tot een tabel die is geoptimaliseerd voor geheugen vanuit een expliciete of impliciete transactie met behulp van geïnterpreteerde Transact-SQL, moet u ten minste een van de volgende handelingen uitvoeren:
Geef een hint voor een tabel op isolatieniveau op, zoals SNAPSHOT, REPEATABLEREAD of SERIALIZABLE.
Stel de databaseoptie MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT in op AAN.
Een tabelhint op isolatieniveau is niet vereist voor tabellen die zijn geoptimaliseerd voor geheugen, die worden benaderd door query's die worden uitgevoerd in de modus voor automatisch committen.