Delen via


Toegang tot geheugen-geoptimaliseerde tabellen met geïnterpreteerde Transact-SQL

Van toepassing op:SQL ServerAzure 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:

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.

Zie ook

Transact-SQL ondersteuning voor In-Memory OLTP

migreren naar In-Memory OLTP