Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Der Bericht zur Transaktionsleistungsanalyse informiert Sie darüber, welche interpretierten gespeicherten Prozeduren in der Datenbank profitieren, wenn sie zur Verwendung der nativen Kompilierung portiert werden. Details finden Sie unter Bestimmen, ob eine Tabelle oder eine gespeicherte Prozedur zu In-Memory OLTP portiert werden soll.
Nachdem Sie eine gespeicherte Prozedur identifiziert haben, die Sie zur Verwendung der nativen Kompilierung portieren möchten, können Sie den Native Compilation Advisor (NCA) verwenden, um die Migration der interpretierten gespeicherten Prozedur zur nativen Kompilierung zu vereinfachen. Weitere Informationen zu nativ kompilierten gespeicherten Prozeduren finden Sie unter Natively Compiled Stored Procedures.
In einer bestimmten interpretierten gespeicherten Prozedur können Sie mit dem NCA alle Features identifizieren, die in nativen Modulen nicht unterstützt werden. Die NCA bietet Links zu Problemumgehungen oder Lösungen an.
Weitere Informationen zu Migrationsmethoden finden Sie unter In-Memory OLTP - Common Workload Patterns and Migration Considerations (In-Memory-OLTP: Allgemeine Workloadmuster und Überlegungen zur Migration).
Exemplarische Vorgehensweise: Assistent für native Kompilierung
Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf die gespeicherte Prozedur, die Sie konvertieren möchten, und wählen Sie Native Compilation Advisor aus. Daraufhin wird die Willkommensseite für den Stored Procedure Native Compilation Advisor angezeigt. Klicken Sie auf Weiter, um fortzufahren.
Validierung der Stored Procedure
Auf dieser Seite wird angezeigt, ob die gespeicherte Prozedur Konstrukte verwendet, die mit der nativen Kompilierung nicht kompatibel sind. Klicken Sie auf Weiter, um Details anzuzeigen. Wenn Konstrukte vorhanden sind, die nicht mit der nativen Kompilierung kompatibel sind, können Sie durch Klicken auf Weiter zusätzliche Details abrufen.
Validierungsergebnis der Stored Procedure
Wenn Konstrukte vorhanden sind, die nicht mit der nativen Kompilierung kompatibel sind, werden auf der Seite Überprüfungsergebnis der gespeicherten Prozedur detaillierte Informationen angezeigt. Sie können (durch Klicken auf Bericht generieren) einen Bericht generieren, den Native Compilation Advisor beenden und den Code aktualisieren, sodass er mit der nativen Kompilierung kompatibel ist.
Codebeispiel
Das folgende Beispiel zeigt eine interpretierte gespeicherte Prozedur und die äquivalente gespeicherte Prozedur für die native Kompilierung. Das in diesem Beispiel verwendete Verzeichnis ist c:\data.
Hinweis
Wenn du CREATE DATABASE ohne zusätzliche Optionen in Azure SQL-Datenbank ausführst, wird die Datenbank auf dem logischen Server mit den Standardeinstellungen erstellt. Die Syntax FILEGROUP gilt nicht für Azure SQL-Datenbank oder SQL-Datenbank in Microsoft Fabric.
In der Azure SQL-Datenbank oder der SQL-Datenbank in Microsoft Fabric kannst du, falls die vorgesehene Datenbank bereits existiert, die CREATE DATABASE Beispiel- und nicht unterstützten USE Anweisungen überspringen und direkt eine Verbindung mit dieser Datenbank herstellen. Verbinden Sie sich separat direkt mit dem master und den gewünschten Benutzerdatenbanken.
USE [master];
GO
CREATE DATABASE [Demo]
ON
PRIMARY(NAME = [Demo_data],
FILENAME = 'C:\DATA\Demo_data.mdf', size=500MB)
, FILEGROUP [Demo_fg] CONTAINS MEMORY_OPTIMIZED_DATA(
NAME = [Demo_dir],
FILENAME = 'C:\DATA\Demo_dir')
LOG ON (name = [Demo_log], Filename='C:\DATA\Demo_log.ldf', size=500MB)
COLLATE Latin1_General_100_BIN2;
go
USE [Demo];
go
CREATE TABLE [dbo].[SalesOrders]
(
[order_id] [int] NOT NULL,
[order_date] [datetime] NOT NULL,
[order_status] [tinyint] NOT NULL
CONSTRAINT [PK_SalesOrders] PRIMARY KEY NONCLUSTERED HASH
(
[order_id]
) WITH ( BUCKET_COUNT = 2097152)
) WITH ( MEMORY_OPTIMIZED = ON )
go
-- Interpreted.
CREATE PROCEDURE [dbo].[InsertOrder] @id INT, @date DATETIME2, @status TINYINT
AS
BEGIN
INSERT dbo.SalesOrders VALUES (@id, @date, @status);
END
go
-- Natively Compiled.
CREATE PROCEDURE [dbo].[InsertOrderXTP]
@id INT, @date DATETIME2, @status TINYINT
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS
BEGIN ATOMIC WITH
(TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english'
)
INSERT dbo.SalesOrders VALUES (@id, @date, @status);
END
go
SELECT * from SalesOrders;
go
EXECUTE dbo.InsertOrder @id= 10, @date = '1956-01-01 12:00:00', @status = 1;
EXECUTE dbo.InsertOrderXTP @id= 11, @date = '1956-01-01 12:01:00', @status = 2;
SELECT * from SalesOrders;