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.
Das Tool für Transaktionsleistungsberichte (siehe Ermitteln, ob eine Tabelle oder eine gespeicherte Prozedur zu In-Memory OLTP portiert werden soll) informiert Sie darüber, welche interpretierten gespeicherten Prozeduren in Ihrer Datenbank von Nutzen sind, wenn sie zur Verwendung der nativen Kompilierung portiert werden. Nachdem Sie eine gespeicherte Prozedur identifiziert haben, die Sie zur Verwendung der systeminternen Kompilierung portieren möchten, können Sie den Ratgeber für die systeminterne Kompilierung verwenden, um die Migration der interpretierten gespeicherten Prozedur zur systeminternen Kompilierung zu vereinfachen. Weitere Informationen zu systemintern kompilierten gespeicherten Prozeduren finden Sie unter Natively Compiled Stored Procedures.
Stellen Sie zunächst eine Verbindung mit der Instanz her, die die interpretierte gespeicherte Prozedur enthält. Sie können eine Verbindung mit SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 oder SQL Server 2014 instance herstellen. Wenn Sie jedoch einen Migrationsvorgang mit dem Advisor durchführen möchten, müssen Sie eine Verbindung mit einer SQL Server 2014 instance herstellen, für die In-Memory OLTP-Funktionalität aktiviert ist. Weitere Informationen zu den Anforderungen für In-Memory OLTP finden Sie unter Requirements for Using Memory-Optimized Tables.
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: Ratgeber für native Kompilierung
Klicken Sie im Objekt-Explorermit der rechten Maustaste auf die gespeicherte Prozedur, die Sie konvertieren möchten, und wählen Sie Ratgeber für native Kompilierungaus. Daraufhin wird die Willkommensseite für Ratgeber für die native Kompilierung gespeicherter Prozedurenangezeigt. Klicken Sie auf zum Fortfahren auf Weiter.
Überprüfung der gespeicherten Prozedur
Auf dieser Seite wird angezeigt, ob die gespeicherte Prozedur Konstrukte verwendet, die mit der nativen Kompilierung nicht kompatibel sind. Klicken Sie auf Weiter , um weitere 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.
Überprüfungsergebnis der gespeicherten Prozedur
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 Ratgeber für native Kompilierungbeenden und den Code aktualisieren, sodass er mit der nativen Kompilierung kompatibel ist.
Codebeispiel
Im folgenden Beispiel werden eine interpretierte gespeicherte Prozedur und die äquivalente gespeicherte Prozedur für die systeminterne Kompilierung erläutert. Das in diesem Beispiel verwendete Verzeichnis ist c:\data.
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
CREATE PROCEDURE [dbo].[InsertOrder] @id INT, @date DATETIME2, @status TINYINT
AS
BEGIN
INSERT dbo.SalesOrders VALUES (@id, @date, @status)
END
go
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
exec dbo.InsertOrder @id= 10, @date = '1956-01-01 12:00:00', @status = 1 ;
exec dbo.InsertOrderXTP @id= 11, @date = '1956-01-01 12:01:00', @status = 2 ;
select * from SalesOrders