Delen via


Niet-ondersteunde SQL Server-functies voor In-Memory OLTP

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

In dit onderwerp worden SQL Server-functies besproken die niet worden ondersteund voor gebruik met objecten die zijn geoptimaliseerd voor geheugen. Bovendien bevat de laatste sectie functies die niet werden ondersteund voor In-Memory OLTP, maar later werd ondersteund.

SQL Server-functies worden niet ondersteund voor In-Memory OLTP

De volgende SQL Server-functies worden niet ondersteund in een database met objecten die zijn geoptimaliseerd voor geheugen (inclusief voor geheugen geoptimaliseerde gegevensbestandsgroep).

Niet-ondersteunde functie Functiebeschrijving
Gegevenscompressie voor tabellen die zijn geoptimaliseerd voor geheugen. U kunt de functie voor gegevenscompressie gebruiken om de gegevens in een database te comprimeren en om de grootte van de database te verminderen. Zie Gegevenscompressievoor meer informatie.
Partitionering van tabellen en HASH-indexen die zijn geoptimaliseerd voor geheugen en van niet-geclusterde indexen. De gegevens van gepartitioneerde tabellen en indexen zijn onderverdeeld in eenheden die kunnen worden verdeeld over meer dan één bestandsgroep in een database. Zie Gepartitioneerde tabellen en indexenvoor meer informatie.
Replication Replicatieconfiguraties, anders dan transactionele replicatie naar voor geheugen geoptimaliseerde tabellen op abonnees, zijn niet compatibel met tabellen of weergaven die naar voor geheugen geoptimaliseerde tabellen verwijzen.

Als er een voor geheugen geoptimaliseerde bestandsgroep is, wordt replicatie met behulp van sync_mode='momentopname van de database' niet ondersteund.

Zie Replicatie naar abonnees van memory-geoptimaliseerde tabellen voor meer informatie.
Spiegeling Databasespiegeling wordt niet ondersteund voor databases met een MEMORY_OPTIMIZED_DATA bestandsgroep. Zie Databasespiegeling (SQL Server) voor meer informatie over spiegeling.
Logboek opnieuw opbouwen Het opnieuw samenstellen van het logboek, via koppelen of ALTER DATABASE, wordt niet ondersteund voor databases met een MEMORY_OPTIMIZED_DATA bestandsgroep.
Gekoppelde server U hebt geen toegang tot gekoppelde servers in dezelfde query of transactie als tabellen die zijn geoptimaliseerd voor geheugen. Zie Gekoppelde servers (Database Engine)voor meer informatie.
Bulklogboekregistratie Ongeacht het herstelmodel van de database worden alle bewerkingen op tabellen die zijn geoptimaliseerd voor duurzaam geheugen altijd volledig geregistreerd.
Minimale logboekregistratie Minimale logboekregistratie wordt niet ondersteund voor tabellen die zijn geoptimaliseerd voor geheugen. Zie Het transactielogboek (SQL Server) en de vereisten voor minimale logboekregistratie in bulkimport voor meer informatie over minimale logboekregistratie.
Wijzigingen bijhouden Wijzigingen bijhouden wordt niet ondersteund voor tabellen die zijn geoptimaliseerd voor geheugen.
DDL-triggers Triggers op databaseniveau en DDL-triggers op serverniveau worden niet ondersteund met In-Memory OLTP-tabellen of met systeemeigen gecompileerde modules.
Gegevensopname wijzigen (CDC) SQL Server 2017 CU15 en hoger ondersteunen het inschakelen van CDC in een database met tabellen die zijn geoptimaliseerd voor geheugen. Dit is alleen van toepassing op de database en eventuele tabellen op schijf in de database. In eerdere versies van SQL Server kan CDC niet worden gebruikt met een database met tabellen die zijn geoptimaliseerd voor geheugen, omdat intern CDC een DDL-trigger gebruikt voor DROP TABLE.
Glasvezelmodus De glasvezelmodus wordt niet ondersteund met tabellen die zijn geoptimaliseerd voor geheugen:

Als de glasvezelmodus actief is, kunt u geen databases maken met bestandsgroepen die zijn geoptimaliseerd voor geheugen, en kunt u ook geen bestandsgroepen die zijn geoptimaliseerd voor geheugen toevoegen aan bestaande databases.

U kunt de glasvezelmodus inschakelen als er databases zijn met voor geheugen geoptimaliseerde bestandsgroepen. Voor het inschakelen van de glasvezelmodus moet de server echter opnieuw worden opgestart. In dat geval kunnen databases met voor geheugen geoptimaliseerde bestandsgroepen niet worden hersteld. Vervolgens ziet u een foutbericht met de suggestie dat u de glasvezelmodus uitschakelt voor het gebruik van databases met bestandsgroepen die zijn geoptimaliseerd voor geheugen.

Als de vezelmodus actief is, mislukt het koppelen en herstellen van een database met een voor geheugen geoptimaliseerde bestandsgroep. De databases worden gemarkeerd als verdacht.

Zie de optie Voor het configureren van lichtgewicht poolingservers voor meer informatie.
Service Broker beperking Kan geen toegang krijgen tot een wachtrij vanuit een systeemeigen gecompileerde opgeslagen procedure.

Kan geen toegang krijgen tot een wachtrij in een externe database in een transactie die toegang heeft tot tabellen die zijn geoptimaliseerd voor geheugen.
Replicatie op abonnees Transactionele replicatie naar geheugen-geoptimaliseerde tabellen bij abonnees wordt ondersteund, maar met enkele beperkingen. Voor meer informatie, zie Replicatie naar Geheugen-geoptimaliseerde Tabelabonnees

Query's en transacties tussen databases

Met een paar uitzonderingen worden transacties tussen databases niet ondersteund. In de volgende tabel wordt beschreven welke gevallen worden ondersteund en de bijbehorende beperkingen. (Zie ook query's voor meerdere databases.)

Databases Toegestaan Description
Gebruikersdatabases, model en msdb. Nee. In de meeste gevallen worden query's en transacties tussen databases niet ondersteund.

Een query heeft geen toegang tot andere databases als de query gebruikmaakt van een tabel die is geoptimaliseerd voor geheugen of een systeemeigen gecompileerde opgeslagen procedure. Deze beperking geldt voor transacties en query's.

De uitzonderingen zijn de tempdb - en masterdatabases van het systeem. Hier is de hoofddatabase beschikbaar voor alleen-lezentoegang.
Resourcedatabase , tempdb Yes In een transactie die In-Memory OLTP-objecten aanraakt, kunnen de resource - en tempdb-systeemdatabases zonder extra beperkingen worden gebruikt.

Scenario's worden niet ondersteund

  • Toegang tot tabellen die zijn geoptimaliseerd voor geheugen met behulp van de contextverbinding vanuit opgeslagen CLR-procedures.

  • Keyset-cursors en dynamische cursors voor queries die toegang hebben tot in het geheugen geoptimaliseerde tabellen. Deze cursors worden gedegradeerd tot statisch en alleen-lezen.

  • Het gebruik van MERGE INTO-doel, waarbij het doel een tabel is die is geoptimaliseerd voor geheugen, wordt niet ondersteund.

    • MERGE USINGbron wordt ondersteund voor tabellen die zijn geoptimaliseerd voor geheugen.
  • Het gegevenstype ROWVERSION (TIMESTAMP) wordt niet ondersteund. Zie FROM (Transact-SQL)voor meer informatie.

  • Automatisch sluiten wordt niet ondersteund voor databases met een MEMORY_OPTIMIZED_DATA bestandsgroep

  • Transactionele DDL, zoals CREATE/ALTER/DROP van In-Memory OLTP-objecten, wordt niet ondersteund binnen gebruikerstransacties.

  • Gebeurtenismelding.

  • Op beleid gebaseerd beheer (PBM).

    • Voorkomen- en logboekmodus van PBM worden niet ondersteund. Het bestaan van dergelijke beleidsregels op de server kan verhinderen dat In-Memory OLTP DDL wordt uitgevoerd. Modi op aanvraag en volgens planning worden ondersteund.
  • Database-insluiting (ingesloten databases) wordt niet ondersteund met In-Memory OLTP.

    • Ingesloten databaseverificatie wordt ondersteund. Alle In-Memory OLTP-objecten worden in de dynamische beheerview (DMV) dm_db_uncontained_entities gemarkeerd als schending van insluiting.

Onlangs toegevoegde ondersteuningen

Soms voegt een nieuwere versie van SQL Server ondersteuning toe voor een functie die eerder niet werd ondersteund. Deze sectie bevat functies die vroeger niet werden ondersteund voor In-Memory OLTP, maar die later werden ondersteund voor In-Memory OLTP.

In de volgende tabel verwijzen versiewaarden zoals (15.x) verwijzen naar de waarde die wordt geretourneerd door de Transact-SQL-instructie SELECT @@Version;.

Functienaam Versie van SQL Server Comments
Momentopnamen van databases 2019 (15.x) Databasemomentopnamen worden nu ondersteund voor databases met een MEMORY_OPTIMIZED_DATA bestandsgroep.

Zie ook