Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Med bara några få undantag kan du komma åt minnesoptimerade tabeller med valfri Transact-SQL fråga eller DML-åtgärd (välj, infoga, uppdatera eller ta bort), ad hoc-batchar och SQL-moduler som lagrade procedurer, tabellvärdefunktioner, utlösare och vyer.
Tolkade Transact-SQL refererar till Transact-SQL batchar eller lagrade procedurer som inte är en internt kompilerad lagrad procedur. Tolkad Transact-SQL åtkomst till minnesoptimerade tabeller kallas interop-åtkomst.
Från och med SQL Server 2016 (13.x) kan frågor i tolkade Transact-SQL skanna minnesoptimerade tabeller parallellt, i stället för bara i serieläge.
Minnesoptimerade tabeller kan också nås med hjälp av en internt kompilerad lagrad procedur. Internt kompilerade lagrade procedurer rekommenderas för prestandakritiska OLTP-åtgärder.
Tolkad Transact-SQL åtkomst rekommenderas för följande scenarier:
Ad hoc-frågor och administrativa uppgifter.
Rapporteringsfrågor, som vanligtvis använder konstruktioner som inte är tillgängliga i inbyggda kompilerade lagrade procedurer (till exempel fönsterfunktioner , som ibland kallas OVER-funktioner ).
Om du vill migrera prestandakritiska delar av programmet till minnesoptimerade tabeller med minimala (eller inga) ändringar i programkoden. Du kan potentiellt se prestandaförbättringar från migrering av tabeller. Om du sedan migrerar lagrade procedurer till internt kompilerade lagrade procedurer kan du se ytterligare prestandaförbättringar.
När en Transact-SQL-instruktion inte är tillgänglig för internt kompilerade lagrade procedurer.
Följande Transact-SQL konstruktioner stöds dock inte i tolkade Transact-SQL lagrade procedurer som kommer åt data i en minnesoptimerad tabell.
| Area | Inte stödd |
|---|---|
| Åtkomst till tabeller | TRUNCATE TABLE MERGE (minnesoptimerad tabell som mål) Dynamiska markörer och tangentuppsättningsmarkörer (dessa degraderas automatiskt till statisk). Åtkomst från CLR-moduler med hjälp av kontextanslutningen. Refererar till en minnesoptimerad tabell från en indexerad vy. |
| Databasöverskridande | Frågor mellan databaser Transaktioner mellan databaser Länkade servrar |
Tabellhänvisningar
Mer information om tabelltips finns i. Tabelltips (Transact-SQL). Ögonblicksbilden lades till för att stödja In-Memory OLTP.
Följande tabelltips stöds inte vid åtkomst till en minnesoptimerad tabell med hjälp av tolkad Transact-SQL.
HOLDLOCK
PAGLOCK
READUNCOMMITTED
TABLOCKXX
IGNORE_CONSTRAINTS
READCOMMITTED
ROWLOCK
UPDLOCK
IGNORE_TRIGGERS
READCOMMITTEDLOCK
SPATIAL_WINDOW_MAX_CELLS = heltal
XLOCK
NOWAIT
READPAST
TABLOCK
När du kommer åt en minnesoptimerad tabell från en explicit eller implicit transaktion med hjälp av tolkad Transact-SQL måste du göra minst något av följande:
Ange ett tabelltips på isoleringsnivå , till exempel ÖGONBLICKSBILD, REPEATABLEREAD eller SERIALIZABLE.
Ange databasalternativet MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT till PÅ.
En tabelltips på isoleringsnivå krävs inte för minnesoptimerade tabeller som används av frågor som körs i autokommitteringsläge.