Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores
de Azure SQL Managed Instance
Este artículo describe cómo difiere trabajar con una tabla temporal versionada por sistema optimizada para memoria respecto a trabajar con una tabla temporal versionada por sistema basada en disco.
Note
Las tablas temporales optimizadas para memoria solo están disponibles en SQL Server y Azure SQL Managed Instance. Las tablas y tablas temporales optimizadas para memoria están disponibles de forma independiente en Azure SQL Database.
Detección de metadatos
Para descubrir metadatos sobre una tabla temporal versionada para sistemas optimizada para memoria, combina información de sys.tables y sys.internal_tables. Una tabla temporal con control de versiones del sistema aparece como la columna parent_object_id de la tabla de historial interna en memoria.
En este ejemplo se muestra cómo consultar y combinar estas tablas.
SELECT SCHEMA_NAME(T1.schema_id) AS TemporalTableSchema,
OBJECT_NAME(IT.parent_object_id) AS TemporalTableName,
T1.object_id AS TemporalTableObjectId,
IT.Name AS InternalHistoryStagingName,
SCHEMA_NAME(T2.schema_id) AS HistoryTableSchema,
OBJECT_NAME(T1.history_table_id) AS HistoryTableName
FROM sys.internal_tables AS IT
INNER JOIN sys.tables AS T1
ON IT.parent_object_id = T1.object_id
INNER JOIN sys.tables AS T2
ON T1.history_table_id = T2.object_id
WHERE T1.is_memory_optimized = 1
AND T1.temporal_type = 2;
Modificación de datos
Puedes modificar tablas temporales optimizadas para memoria mediante procedimientos almacenados compilados de forma nativa. Estos procedimientos permiten convertir tablas no optimizadas para memoria temporal y conservar los procedimientos nativos existentes.
Este ejemplo muestra cómo modificar una tabla existente en un módulo compilado nativamente.
CREATE PROCEDURE dbo.UpdateFXCurrencyPair (
@ProviderID INT,
@CurrencyID1 INT,
@CurrencyID2 INT,
@BidRate DECIMAL (8, 4),
@AskRate DECIMAL (8, 4)
)
WITH NATIVE_COMPILATION,
SCHEMABINDING,
EXECUTE AS OWNER
AS
BEGIN ATOMIC
WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'English')
UPDATE dbo.FXCurrencyPairs
SET AskRate = @AskRate,
BidRate = @BidRate
WHERE ProviderID = @ProviderID
AND CurrencyID1 = @CurrencyID1
AND CurrencyID2 = @CurrencyID2;
END;
Contenido relacionado
- Tablas temporales versionadas por el sistema con tablas optimizadas para la memoria
- Creación de una tabla temporal con control de versiones del sistema optimizada para memoria
- Supervisar tablas temporales con versiones administradas por el sistema optimizadas para memoria
- Rendimiento de las tablas temporales con versión del sistema optimizadas para memoria
- Tablas temporales
- Comprobaciones de coherencia del sistema de la tabla temporal
- Administrar la retención de datos históricos en las tablas temporales con versiones del sistema
- Funciones y vistas de metadatos de la tabla temporal