diff --git a/.gitignore b/.gitignore index 6bfd9c47..581d87c1 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,6 @@ samples/features/in-memory/ticket-reservations/DemoWorkload/obj/Debug/TemporaryG *.user samples/features/in-memory/ticket-reservations/DemoWorkload/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs samples/databases/wide-world-importers/workload-drivers/vehicle-location-insert/MultithreadedInMemoryTableInsert/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs +samples/features/in-memory/ticket-reservations/DemoWorkload/bin/Debug/DemoWorkload.vshost.exe.config +samples/features/in-memory/ticket-reservations/DemoWorkload/obj/Release/DemoWorkload.Properties.Resources.resources +samples/databases/wide-world-importers/wwi-integration-etl/Daily ETL/obj/Development/Project.params diff --git a/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/Disk-Based/Create_Database_DiskBased.sql b/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/Disk-Based/Create_Database_DiskBased.sql new file mode 100644 index 00000000..4d7bf8e2 --- /dev/null +++ b/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/Disk-Based/Create_Database_DiskBased.sql @@ -0,0 +1,28 @@ +USE master +GO + +-- create main database files; for large-scale workloads, add additional containers to the DiskBased_fg filegroup +CREATE DATABASE DiskBasedDB +ON PRIMARY +( NAME = DiskBasedDB_root, + FILENAME = 'D:\Data\DiskBasedDB_root.mdf', + SIZE = 8MB, + FILEGROWTH = 10), +FILEGROUP DiskBased_fg +( NAME = DiskBasedDB_1, + FILENAME = 'D:\Data\DiskBasedDB_1'), +( NAME = DiskBasedDB_2, + FILENAME = 'D:\Data\DiskBasedDB_2') +LOG ON +( NAME = DiskBasedDB_log, + FILENAME = 'E:\Log\DiskBasedDB_LogDiskBasedDB_log.ldf', + SIZE = 1000MB, + FILEGROWTH = 10) +COLLATE Latin1_General_BIN2 +GO + +USE DiskBasedDB +GO + +ALTER AUTHORIZATION ON DATABASE::DiskBasedDB TO sa +GO diff --git a/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/Disk-Based/Create_Indexes_DiskBased.sql b/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/Disk-Based/Create_Indexes_DiskBased.sql new file mode 100644 index 00000000..ca046858 --- /dev/null +++ b/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/Disk-Based/Create_Indexes_DiskBased.sql @@ -0,0 +1,112 @@ +---------------------------------------------------------------------------- +-- -- +-- File: Create_Indexes_DiskBased_Tables.SQL -- +-- For Azure SQL DB, replace all occurenced of "ON DiskBased_fg" with "" -- +-- Run this script after loading data -- +---------------------------------------------------------------------------- +USE DiskBasedDB +GO + +--- +--- Set connection attributes +--- +SET ANSI_NULLS ON +SET ANSI_PADDING ON +SET ANSI_WARNINGS ON +SET ARITHABORT ON +SET CONCAT_NULL_YIELDS_NULL ON +SET QUOTED_IDENTIFIER ON +SET NUMERIC_ROUNDABORT OFF +GO + +-- *** CUSTOMER *** +IF NOT EXISTS ( SELECT name FROM sysindexes WHERE name = 'PK_CUSTOMER' ) + CREATE UNIQUE CLUSTERED INDEX PK_CUSTOMER ON Customer( C_ID ) + WITH (FILLFACTOR = 100, SORT_IN_TEMPDB=ON, MAXDOP = 8) + +GO + +CHECKPOINT +GO + +-- *** FULFILLMENT *** +IF NOT EXISTS ( SELECT name FROM sysindexes WHERE name = 'PK_FULFILLMENT' ) + CREATE UNIQUE CLUSTERED INDEX PK_FULFILLMENT ON Fulfillment( FM_ID ) + WITH (FILLFACTOR = 100, SORT_IN_TEMPDB=ON, MAXDOP = 8) + +GO + +CHECKPOINT +GO + +-- *** ORDERLINES *** +IF NOT EXISTS ( SELECT name FROM sysindexes WHERE name = 'PK_ORDERLINES' ) + CREATE CLUSTERED INDEX PK_ORDERLINES ON OrderLines( OL_O_ID ) + WITH (FILLFACTOR = 100, SORT_IN_TEMPDB=ON, MAXDOP = 8) + +GO + +IF NOT EXISTS ( SELECT name FROM sysindexes WHERE name = 'IX_ORDERLINES_NC1' ) + CREATE UNIQUE INDEX IX_ORDERLINES_NC1 ON OrderLines( OL_O_ID, OL_SEQ ) + WITH (FILLFACTOR = 100, SORT_IN_TEMPDB=ON, MAXDOP = 8) + +GO + +CHECKPOINT +GO + +-- *** ORDERS *** +IF NOT EXISTS ( SELECT name FROM sysindexes WHERE name = 'PK_ORDERS' ) + CREATE UNIQUE CLUSTERED INDEX PK_ORDERS ON Orders( O_ID ) + WITH (FILLFACTOR = 100, SORT_IN_TEMPDB=ON, MAXDOP = 8) + +GO + +IF NOT EXISTS ( SELECT name FROM sysindexes WHERE name = 'IX_ORDERS_NC1' ) + CREATE INDEX IX_ORDERS_NC1 ON Orders( O_C_ID ) + WITH (FILLFACTOR = 100, SORT_IN_TEMPDB=ON, MAXDOP = 8) + +GO + +IF NOT EXISTS ( SELECT name FROM sysindexes WHERE name = 'IX_ORDERS_NC2' ) + CREATE INDEX IX_ORDERS_NC2 ON Orders( O_FM_DTS, O_DTS ASC ) + WITH (FILLFACTOR = 100, SORT_IN_TEMPDB=ON, MAXDOP = 8) + +GO + +CHECKPOINT +GO + +-- *** PRODUCTS *** +IF NOT EXISTS ( SELECT name FROM sysindexes WHERE name = 'PK_PRODUCTS' ) + CREATE UNIQUE CLUSTERED INDEX PK_PRODUCTS ON Products( PR_ID ) + WITH (FILLFACTOR = 100, SORT_IN_TEMPDB=ON, MAXDOP = 8) + +GO + +CHECKPOINT +GO + +IF NOT EXISTS ( SELECT name FROM sysindexes WHERE name = 'IX_PRODUCTS_NC1' ) + CREATE INDEX IX_PRODUCTS_NC1 ON Products( PR_TYPE ) + WITH (FILLFACTOR = 100, SORT_IN_TEMPDB=ON, MAXDOP = 8) + +GO + +CHECKPOINT +GO + +-- *** PURCHASE_CRITERIA *** +IF NOT EXISTS ( SELECT name FROM sysindexes WHERE name = 'PK_PURCHASE_CRITERIA' ) + CREATE UNIQUE CLUSTERED INDEX PK_PURCHASE_CRITERIA ON Purchase_Criteria( PC_ID ) + WITH (FILLFACTOR = 100, SORT_IN_TEMPDB=ON, MAXDOP = 24) + +GO + +CHECKPOINT +GO + +SET ANSI_PADDING OFF +GO + + diff --git a/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/Disk-Based/Create_Tables_DiskBased.sql b/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/Disk-Based/Create_Tables_DiskBased.sql new file mode 100644 index 00000000..1dab372e --- /dev/null +++ b/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/Disk-Based/Create_Tables_DiskBased.sql @@ -0,0 +1,278 @@ +------------------------------------------- +-- version 0.0.0-1007 +------------------------------------------- + +USE DiskBasedDB +GO + +SET ANSI_NULLS ON +GO + +SET QUOTED_IDENTIFIER ON +GO + +-- CUSTOMER Table +CREATE TABLE dbo.Customer( + C_ID bigint NOT NULL, + C_L_NAME varchar(25) COLLATE Latin1_General_100_BIN2, + C_F_NAME varchar(20) COLLATE Latin1_General_100_BIN2, + C_EMAIL varchar(50) NULL + +) ON DiskBased_fg +GO + +-- FULFILLMENT Table +CREATE TABLE dbo.Fulfillment( + FM_ID bigint IDENTITY(1,1) NOT NULL, + FM_O_ID bigint NOT NULL, + FM_C_ID bigint NOT NULL, + FM_DTS datetime NOT NULL + +) ON DiskBased_fg +GO + +-- ORDERLINES Table +CREATE TABLE dbo.OrderLines( + OL_O_ID bigint NOT NULL, + OL_SEQ int NOT NULL, + OL_PR_ID bigint NOT NULL, + OL_QTY int NOT NULL, + OL_PRICE decimal(9,2) NOT NULL, + OL_DTS datetime NOT NULL, + +) ON DiskBased_fg +GO + +-- ORDERS Table +CREATE TABLE dbo.Orders( + O_ID bigint IDENTITY(1,1) NOT NULL, + O_C_ID bigint NOT NULL, + O_TOTAL decimal(9,2) NOT NULL, + O_DTS datetime NOT NULL, + O_FM_DTS datetime NOT NULL, + +) ON DiskBased_fg +GO + +-- PRODUCTs Table +CREATE TABLE dbo.Products( + PR_ID bigint NOT NULL, + PR_NAME varchar(50) COLLATE Latin1_General_100_BIN2 NOT NULL, + PR_TYPE int NOT NULL, + PR_DESC varchar(1000) COLLATE Latin1_General_100_BIN2 NOT NULL, + PR_PRICE decimal(9,2) NOT NULL, + PR_DEC1 float NOT NULL, + PR_DEC2 float NOT NULL, + PR_DEC3 float NOT NULL, + PR_DEC4 float NOT NULL, + PR_DEC5 float NOT NULL, + PR_DEC6 float NOT NULL, + PR_DEC7 float NOT NULL, + PR_DEC8 float NOT NULL, + PR_DEC9 float NOT NULL, + PR_DEC10 float NOT NULL, + PR_DEC11 float NOT NULL, + PR_DEC12 float NOT NULL, + PR_DEC13 float NOT NULL, + PR_DEC14 float NOT NULL, + PR_DEC15 float NOT NULL, + PR_DEC16 float NOT NULL, + PR_DEC17 float NOT NULL, + PR_DEC18 float NOT NULL, + PR_DEC19 float NOT NULL, + PR_DEC20 float NOT NULL, + PR_DEC21 float NOT NULL, + PR_DEC22 float NOT NULL, + PR_DEC23 float NOT NULL, + PR_DEC24 float NOT NULL, + PR_DEC25 float NOT NULL, + PR_DEC26 float NOT NULL, + PR_DEC27 float NOT NULL, + PR_DEC28 float NOT NULL, + PR_DEC29 float NOT NULL, + PR_DEC30 float NOT NULL, + PR_DEC31 float NOT NULL, + PR_DEC32 float NOT NULL, + PR_DEC33 float NOT NULL, + PR_DEC34 float NOT NULL, + PR_DEC35 float NOT NULL, + PR_DEC36 float NOT NULL, + PR_DEC37 float NOT NULL, + PR_DEC38 float NOT NULL, + PR_DEC39 float NOT NULL, + PR_DEC40 float NOT NULL, + PR_DEC41 float NOT NULL, + PR_DEC42 float NOT NULL, + PR_DEC43 float NOT NULL, + PR_DEC44 float NOT NULL, + PR_DEC45 float NOT NULL, + PR_DEC46 float NOT NULL, + PR_DEC47 float NOT NULL, + PR_DEC48 float NOT NULL, + PR_DEC49 float NOT NULL, + PR_DEC50 float NOT NULL, + PR_DEC51 float NOT NULL, + PR_DEC52 float NOT NULL, + PR_DEC53 float NOT NULL, + PR_DEC54 float NOT NULL, + PR_DEC55 float NOT NULL, + PR_DEC56 float NOT NULL, + PR_DEC57 float NOT NULL, + PR_DEC58 float NOT NULL, + PR_DEC59 float NOT NULL, + PR_DEC60 float NOT NULL, + PR_DEC61 float NOT NULL, + PR_DEC62 float NOT NULL, + PR_DEC63 float NOT NULL, + PR_DEC64 float NOT NULL, + PR_DEC65 float NOT NULL, + PR_DEC66 float NOT NULL, + PR_DEC67 float NOT NULL, + PR_DEC68 float NOT NULL, + PR_DEC69 float NOT NULL, + PR_DEC70 float NOT NULL, + PR_DEC71 float NOT NULL, + PR_DEC72 float NOT NULL, + PR_DEC73 float NOT NULL, + PR_DEC74 float NOT NULL, + PR_DEC75 float NOT NULL, + PR_DEC76 float NOT NULL, + PR_DEC77 float NOT NULL, + PR_DEC78 float NOT NULL, + PR_DEC79 float NOT NULL, + PR_DEC80 float NOT NULL, + PR_DEC81 float NOT NULL, + PR_DEC82 float NOT NULL, + PR_DEC83 float NOT NULL, + PR_DEC84 float NOT NULL, + PR_DEC85 float NOT NULL, + PR_DEC86 float NOT NULL, + PR_DEC87 float NOT NULL, + PR_DEC88 float NOT NULL, + PR_DEC89 float NOT NULL, + PR_DEC90 float NOT NULL, + PR_DEC91 float NOT NULL, + PR_DEC92 float NOT NULL, + PR_DEC93 float NOT NULL, + PR_DEC94 float NOT NULL, + PR_DEC95 float NOT NULL, + PR_DEC96 float NOT NULL, + PR_DEC97 float NOT NULL, + PR_DEC98 float NOT NULL, + PR_DEC99 float NOT NULL, + PR_DEC100 float NOT NULL, + +) ON DiskBased_fg +GO + +-- PURCHASE_CRITERIA Table +CREATE TABLE dbo.Purchase_Criteria( + PC_ID bigint NOT NULL, + PC_DEC1 float NOT NULL, + PC_DEC2 float NOT NULL, + PC_DEC3 float NOT NULL, + PC_DEC4 float NOT NULL, + PC_DEC5 float NOT NULL, + PC_DEC6 float NOT NULL, + PC_DEC7 float NOT NULL, + PC_DEC8 float NOT NULL, + PC_DEC9 float NOT NULL, + PC_DEC10 float NOT NULL, + PC_DEC11 float NOT NULL, + PC_DEC12 float NOT NULL, + PC_DEC13 float NOT NULL, + PC_DEC14 float NOT NULL, + PC_DEC15 float NOT NULL, + PC_DEC16 float NOT NULL, + PC_DEC17 float NOT NULL, + PC_DEC18 float NOT NULL, + PC_DEC19 float NOT NULL, + PC_DEC20 float NOT NULL, + PC_DEC21 float NOT NULL, + PC_DEC22 float NOT NULL, + PC_DEC23 float NOT NULL, + PC_DEC24 float NOT NULL, + PC_DEC25 float NOT NULL, + PC_DEC26 float NOT NULL, + PC_DEC27 float NOT NULL, + PC_DEC28 float NOT NULL, + PC_DEC29 float NOT NULL, + PC_DEC30 float NOT NULL, + PC_DEC31 float NOT NULL, + PC_DEC32 float NOT NULL, + PC_DEC33 float NOT NULL, + PC_DEC34 float NOT NULL, + PC_DEC35 float NOT NULL, + PC_DEC36 float NOT NULL, + PC_DEC37 float NOT NULL, + PC_DEC38 float NOT NULL, + PC_DEC39 float NOT NULL, + PC_DEC40 float NOT NULL, + PC_DEC41 float NOT NULL, + PC_DEC42 float NOT NULL, + PC_DEC43 float NOT NULL, + PC_DEC44 float NOT NULL, + PC_DEC45 float NOT NULL, + PC_DEC46 float NOT NULL, + PC_DEC47 float NOT NULL, + PC_DEC48 float NOT NULL, + PC_DEC49 float NOT NULL, + PC_DEC50 float NOT NULL, + PC_DEC51 float NOT NULL, + PC_DEC52 float NOT NULL, + PC_DEC53 float NOT NULL, + PC_DEC54 float NOT NULL, + PC_DEC55 float NOT NULL, + PC_DEC56 float NOT NULL, + PC_DEC57 float NOT NULL, + PC_DEC58 float NOT NULL, + PC_DEC59 float NOT NULL, + PC_DEC60 float NOT NULL, + PC_DEC61 float NOT NULL, + PC_DEC62 float NOT NULL, + PC_DEC63 float NOT NULL, + PC_DEC64 float NOT NULL, + PC_DEC65 float NOT NULL, + PC_DEC66 float NOT NULL, + PC_DEC67 float NOT NULL, + PC_DEC68 float NOT NULL, + PC_DEC69 float NOT NULL, + PC_DEC70 float NOT NULL, + PC_DEC71 float NOT NULL, + PC_DEC72 float NOT NULL, + PC_DEC73 float NOT NULL, + PC_DEC74 float NOT NULL, + PC_DEC75 float NOT NULL, + PC_DEC76 float NOT NULL, + PC_DEC77 float NOT NULL, + PC_DEC78 float NOT NULL, + PC_DEC79 float NOT NULL, + PC_DEC80 float NOT NULL, + PC_DEC81 float NOT NULL, + PC_DEC82 float NOT NULL, + PC_DEC83 float NOT NULL, + PC_DEC84 float NOT NULL, + PC_DEC85 float NOT NULL, + PC_DEC86 float NOT NULL, + PC_DEC87 float NOT NULL, + PC_DEC88 float NOT NULL, + PC_DEC89 float NOT NULL, + PC_DEC90 float NOT NULL, + PC_DEC91 float NOT NULL, + PC_DEC92 float NOT NULL, + PC_DEC93 float NOT NULL, + PC_DEC94 float NOT NULL, + PC_DEC95 float NOT NULL, + PC_DEC96 float NOT NULL, + PC_DEC97 float NOT NULL, + PC_DEC98 float NOT NULL, + PC_DEC99 float NOT NULL, + PC_DEC100 float NOT NULL, + +) ON DiskBased_fg +GO + +SET ANSI_PADDING OFF +GO + + diff --git a/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/In-Memory/Create_Database_InMem.sql b/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/In-Memory/Create_Database_InMem.sql new file mode 100644 index 00000000..0033eadf --- /dev/null +++ b/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/In-Memory/Create_Database_InMem.sql @@ -0,0 +1,30 @@ +USE master +GO + +-- create main database files; for large-scale workloads, add additional containers in the InMem_fg filegroup +CREATE DATABASE InMemDB +ON PRIMARY +( NAME = InMemDB_root, + FILENAME = 'D:\Data\InMem_root.mdf', + SIZE = 8MB, + FILEGROWTH = 10), +FILEGROUP InMem_fg CONTAINS MEMORY_OPTIMIZED_DATA +( NAME = InMemDB_1, + FILENAME = 'D:\Data\InMem_1') +LOG ON +( NAME = InMemDB_log, + FILENAME = 'E:\Log\InMem_log.ldf', + SIZE = 1000MB, + FILEGROWTH = 10) +COLLATE Latin1_General_BIN2 +GO + +USE InMemDB +GO + +/** For memory-optimized tables, automatically map all lower isolation levels (including READ COMMITTED) to SNAPSHOT **/ +ALTER DATABASE CURRENT SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON +GO + +ALTER AUTHORIZATION ON DATABASE::InMemDB TO sa +GO diff --git a/samples/features/in-memory/benchmark-order-processing/tables/Create_Tables_InMem.sql b/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/In-Memory/Create_Tables_InMem.sql similarity index 73% rename from samples/features/in-memory/benchmark-order-processing/tables/Create_Tables_InMem.sql rename to samples/features/in-memory/benchmark-order-processing/create-database-and-tables/In-Memory/Create_Tables_InMem.sql index 650cf94f..dea62e16 100644 --- a/samples/features/in-memory/benchmark-order-processing/tables/Create_Tables_InMem.sql +++ b/samples/features/in-memory/benchmark-order-processing/create-database-and-tables/In-Memory/Create_Tables_InMem.sql @@ -1,5 +1,6 @@ ------------------------------------------- -- version 0.0.0-1006 +-- update hash index bucket counts based on scale factor. The script was created for scale factor 10. ------------------------------------------- USE InMemDB @@ -13,20 +14,20 @@ GO -- CUSTOMER Table CREATE TABLE dbo.Customer( - C_ID bigint NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 400000000), + C_ID bigint NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 200000), C_L_NAME varchar(25) COLLATE Latin1_General_100_BIN2, C_F_NAME varchar(20) COLLATE Latin1_General_100_BIN2, - C_EMAIL varchar(50) NULL + C_EMAIL varchar(50) NULL ) WITH ( MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA ) GO -- FULFILLMENT Table CREATE TABLE dbo.Fulfillment( - FM_ID bigint IDENTITY(1,1) NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 1073741824), + FM_ID bigint IDENTITY(1,1) NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 1000000), FM_O_ID bigint NOT NULL, - FM_C_ID bigint NOT NULL, - FM_DTS datetime NOT NULL + FM_C_ID bigint NOT NULL, + FM_DTS datetime NOT NULL ) WITH ( MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA ) GO @@ -36,14 +37,14 @@ CREATE TABLE dbo.OrderLines( OL_O_ID bigint NOT NULL, OL_SEQ int NOT NULL, OL_PR_ID bigint NOT NULL, - OL_QTY int NOT NULL, - OL_PRICE decimal(9,2) NOT NULL, - OL_DTS datetime NOT NULL, + OL_QTY int NOT NULL, + OL_PRICE decimal(9,2) NOT NULL, + OL_DTS datetime NOT NULL, - CONSTRAINT PK_OrderLInes PRIMARY KEY NONCLUSTERED HASH ( OL_O_ID, OL_SEQ ) - WITH (BUCKET_COUNT = 1073741824), + CONSTRAINT PK_OrderLInes PRIMARY KEY NONCLUSTERED HASH ( OL_O_ID, OL_SEQ ) + WITH (BUCKET_COUNT = 5000000), - INDEX IX_OrderLinesOL_O_ID HASH (OL_O_ID) WITH (BUCKET_COUNT = 1073741824) + INDEX IX_OrderLinesOL_O_ID HASH (OL_O_ID) WITH (BUCKET_COUNT = 5000000) ) WITH ( MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA ) GO @@ -51,46 +52,46 @@ GO -- ORDERS Table CREATE TABLE dbo.Orders( O_ID bigint IDENTITY(1,1) NOT NULL, - O_C_ID bigint NOT NULL INDEX IX_Orders_O_C_ID HASH WITH (BUCKET_COUNT = 1073741824), - O_TOTAL decimal(9,2) NOT NULL, - O_DTS datetime NOT NULL, + O_C_ID bigint NOT NULL INDEX IX_Orders_O_C_ID HASH WITH (BUCKET_COUNT = 1000000), + O_TOTAL decimal(9,2) NOT NULL, + O_DTS datetime NOT NULL, O_FM_DTS datetime NOT NULL, - CONSTRAINT PK_Orders PRIMARY KEY NONCLUSTERED HASH ( O_ID ) - WITH (BUCKET_COUNT = 1073741824), + CONSTRAINT PK_Orders PRIMARY KEY NONCLUSTERED HASH ( O_ID ) + WITH (BUCKET_COUNT = 1000000), - INDEX IX_Orders_DTS (O_FM_DTS, O_DTS ASC) - + INDEX IX_Orders_DTS (O_FM_DTS, O_DTS ASC) + ) WITH ( MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA ) GO -- PRODUCTs Table CREATE TABLE dbo.Products( - PR_ID bigint NOT NULL, - PR_NAME varchar(50) COLLATE Latin1_General_100_BIN2 NOT NULL, - PR_TYPE int NOT NULL, - PR_DESC varchar(1000) COLLATE Latin1_General_100_BIN2 NOT NULL, - PR_PRICE decimal(9,2) NOT NULL, - PR_DEC1 float NOT NULL, - PR_DEC2 float NOT NULL, - PR_DEC3 float NOT NULL, - PR_DEC4 float NOT NULL, - PR_DEC5 float NOT NULL, - PR_DEC6 float NOT NULL, - PR_DEC7 float NOT NULL, - PR_DEC8 float NOT NULL, - PR_DEC9 float NOT NULL, - PR_DEC10 float NOT NULL, - PR_DEC11 float NOT NULL, - PR_DEC12 float NOT NULL, - PR_DEC13 float NOT NULL, - PR_DEC14 float NOT NULL, - PR_DEC15 float NOT NULL, - PR_DEC16 float NOT NULL, - PR_DEC17 float NOT NULL, - PR_DEC18 float NOT NULL, - PR_DEC19 float NOT NULL, - PR_DEC20 float NOT NULL, + PR_ID bigint NOT NULL, + PR_NAME varchar(50) COLLATE Latin1_General_100_BIN2 NOT NULL, + PR_TYPE int NOT NULL, + PR_DESC varchar(1000) COLLATE Latin1_General_100_BIN2 NOT NULL, + PR_PRICE decimal(9,2) NOT NULL, + PR_DEC1 float NOT NULL, + PR_DEC2 float NOT NULL, + PR_DEC3 float NOT NULL, + PR_DEC4 float NOT NULL, + PR_DEC5 float NOT NULL, + PR_DEC6 float NOT NULL, + PR_DEC7 float NOT NULL, + PR_DEC8 float NOT NULL, + PR_DEC9 float NOT NULL, + PR_DEC10 float NOT NULL, + PR_DEC11 float NOT NULL, + PR_DEC12 float NOT NULL, + PR_DEC13 float NOT NULL, + PR_DEC14 float NOT NULL, + PR_DEC15 float NOT NULL, + PR_DEC16 float NOT NULL, + PR_DEC17 float NOT NULL, + PR_DEC18 float NOT NULL, + PR_DEC19 float NOT NULL, + PR_DEC20 float NOT NULL, PR_DEC21 float NOT NULL, PR_DEC22 float NOT NULL, PR_DEC23 float NOT NULL, @@ -173,7 +174,7 @@ CREATE TABLE dbo.Products( PR_DEC100 float NOT NULL, CONSTRAINT PK_Products PRIMARY KEY NONCLUSTERED HASH ( PR_ID ) - WITH (BUCKET_COUNT = 1073741824), + WITH (BUCKET_COUNT = 2000000), INDEX IX_Products_PR_ID NONCLUSTERED (PR_ID), @@ -184,27 +185,27 @@ GO -- PURCHASE_CRITERIA Table CREATE TABLE dbo.Purchase_Criteria( - PC_ID bigint NOT NULL, - PC_DEC1 float NOT NULL, - PC_DEC2 float NOT NULL, - PC_DEC3 float NOT NULL, - PC_DEC4 float NOT NULL, - PC_DEC5 float NOT NULL, - PC_DEC6 float NOT NULL, - PC_DEC7 float NOT NULL, - PC_DEC8 float NOT NULL, - PC_DEC9 float NOT NULL, - PC_DEC10 float NOT NULL, - PC_DEC11 float NOT NULL, - PC_DEC12 float NOT NULL, - PC_DEC13 float NOT NULL, - PC_DEC14 float NOT NULL, - PC_DEC15 float NOT NULL, - PC_DEC16 float NOT NULL, - PC_DEC17 float NOT NULL, - PC_DEC18 float NOT NULL, - PC_DEC19 float NOT NULL, - PC_DEC20 float NOT NULL, + PC_ID bigint NOT NULL, + PC_DEC1 float NOT NULL, + PC_DEC2 float NOT NULL, + PC_DEC3 float NOT NULL, + PC_DEC4 float NOT NULL, + PC_DEC5 float NOT NULL, + PC_DEC6 float NOT NULL, + PC_DEC7 float NOT NULL, + PC_DEC8 float NOT NULL, + PC_DEC9 float NOT NULL, + PC_DEC10 float NOT NULL, + PC_DEC11 float NOT NULL, + PC_DEC12 float NOT NULL, + PC_DEC13 float NOT NULL, + PC_DEC14 float NOT NULL, + PC_DEC15 float NOT NULL, + PC_DEC16 float NOT NULL, + PC_DEC17 float NOT NULL, + PC_DEC18 float NOT NULL, + PC_DEC19 float NOT NULL, + PC_DEC20 float NOT NULL, PC_DEC21 float NOT NULL, PC_DEC22 float NOT NULL, PC_DEC23 float NOT NULL, @@ -286,8 +287,8 @@ CREATE TABLE dbo.Purchase_Criteria( PC_DEC99 float NOT NULL, PC_DEC100 float NOT NULL, - CONSTRAINT PK_Purchase_Criteria PRIMARY KEY NONCLUSTERED HASH ( PC_ID ) - WITH (BUCKET_COUNT = 400000000) + CONSTRAINT PK_Purchase_Criteria PRIMARY KEY NONCLUSTERED HASH ( PC_ID ) + WITH (BUCKET_COUNT = 200000) ) WITH ( MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA ) GO diff --git a/samples/features/in-memory/benchmark-order-processing/create-database/Create_Database_InMem.sql b/samples/features/in-memory/benchmark-order-processing/create-database/Create_Database_InMem.sql deleted file mode 100644 index 3df1f29b..00000000 --- a/samples/features/in-memory/benchmark-order-processing/create-database/Create_Database_InMem.sql +++ /dev/null @@ -1,68 +0,0 @@ -USE master -GO - --- create main database files -CREATE DATABASE InMemDB -ON PRIMARY -( NAME = InMemDB_root, - FILENAME = 'F:\InMemDB_Data\InMem_root.mdf', - SIZE = 2048MB, - FILEGROWTH = 10), -FILEGROUP InMem_fg CONTAINS MEMORY_OPTIMIZED_DATA -( NAME = InMemDB_1, - FILENAME = 'G:\InMemDB_Data_1\InMem_1'), -( NAME = InMemDB_2, - FILENAME = 'G:\InMemDB_Data_2\InMem_2'), -( NAME = InMemDB_3, - FILENAME = 'G:\InMemDB_Data_3\InMem_3'), -( NAME = InMemDB_4, - FILENAME = 'G:\InMemDB_Data_4\InMem_4'), -( NAME = InMemDB_5, - FILENAME = 'H:\InMemDB_Data_5\InMem_5'), -( NAME = InMemDB_6, - FILENAME = 'H:\InMemDB_Data_6\InMem_6'), -( NAME = InMemDB_7, - FILENAME = 'H:\InMemDB_Data_7\InMem_7'), -( NAME = InMemDB_8, - FILENAME = 'H:\InMemDB_Data_8\InMem_8'), -( NAME = InMemDB_9, - FILENAME = 'I:\InMemDB_Data_9\InMem_9'), -( NAME = InMemDB_10, - FILENAME = 'I:\InMemDB_Data_10\InMem_10'), -( NAME = InMemDB_11, - FILENAME = 'I:\InMemDB_Data_11\InMem_11'), -( NAME = InMemDB_12, - FILENAME = 'I:\InMemDB_Data_12\InMem_12'), -( NAME = InMemDB_13, - FILENAME = 'J:\InMemDB_Data_13\InMem_13'), -( NAME = InMemDB_14, - FILENAME = 'J:\InMemDB_Data_14\InMem_14'), -( NAME = InMemDB_15, - FILENAME = 'J:\InMemDB_Data_15\InMem_15'), -( NAME = InMemDB_16, - FILENAME = 'J:\InMemDB_Data_16\InMem_16') -LOG ON -( NAME = InMemDB_log_1, - FILENAME = 'K:\InMemDB_Log_1\InMem_log_1.ldf', - SIZE = 1968GB, - FILEGROWTH = 10), -( NAME = InMemDB_log_2, - FILENAME = 'K:\InMemDB_Log_2\InMem_log_2.ldf', - SIZE = 1968GB, - FILEGROWTH = 10), -( NAME = InMemDB_log_3, - FILENAME = 'K:\InMemDB_Log_3\InMem_log_3.ldf', - SIZE = 1968GB, - FILEGROWTH = 10) -COLLATE Latin1_General_BIN -GO - -USE InMemDB -GO - -/** For memory-optimized tables, automatically map all lower isolation levels (including READ COMMITTED) to SNAPSHOT **/ -ALTER DATABASE CURRENT SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON -GO - -ALTER AUTHORIZATION ON DATABASE::InMemDB TO sa -GO diff --git a/samples/features/in-memory/benchmark-order-processing/stored-procedures/Create_TVPs.SQL b/samples/features/in-memory/benchmark-order-processing/stored-procedures/Create_TVPs.SQL deleted file mode 100644 index 1d7194d5..00000000 --- a/samples/features/in-memory/benchmark-order-processing/stored-procedures/Create_TVPs.SQL +++ /dev/null @@ -1,40 +0,0 @@ ------------------------------------------------------------------- --- -- --- File: Create_TVPs.SQL -- --- Version: 0.0.0-1003 -- --- -- ------------------------------------------------------------------- -SET QUOTED_IDENTIFIER OFF -GO - -SET ANSI_NULLS ON -GO - -USE InMemDB -GO - - -IF EXISTS ( SELECT name FROM sysobjects WHERE xtype = 'TT' AND name LIKE 'TT_InMemDBTVPOrders%' ) - DROP TYPE dbo.InMemDBTVPOrders -GO - -CREATE TYPE dbo.InMemDBTVPOrders AS TABLE( - SEQ int NOT NULL, - PR_ID bigint NOT NULL, - PR_QTY int - - INDEX PK_IMDBTVPOrders NONCLUSTERED HASH ( SEQ ) - WITH (BUCKET_COUNT = 10) -) -WITH ( MEMORY_OPTIMIZED = ON ) -GO - - -CREATE TYPE dbo.InMemDBTVPTypes AS TABLE( - REQ_TYPE tinyint NOT NULL - - INDEX PK_IMDBTVPTypes NONCLUSTERED HASH ( REQ_TYPE ) - WITH (BUCKET_COUNT = 10) -) -WITH ( MEMORY_OPTIMIZED = ON ) -GO diff --git a/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_ProductSelectionCriteria.sql b/samples/features/in-memory/benchmark-order-processing/stored-procedures/DiskBased_StoredProcedures.sql similarity index 54% rename from samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_ProductSelectionCriteria.sql rename to samples/features/in-memory/benchmark-order-processing/stored-procedures/DiskBased_StoredProcedures.sql index f137bca1..3bacce85 100644 --- a/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_ProductSelectionCriteria.sql +++ b/samples/features/in-memory/benchmark-order-processing/stored-procedures/DiskBased_StoredProcedures.sql @@ -1,7 +1,6 @@ ------------------------------------------------------------------ -- -- --- File: usp_ProductSelectionCriteria.sql -- --- Version: 0.0.0-1006 -- +-- File: -- -- -- ------------------------------------------------------------------ SET QUOTED_IDENTIFIER OFF @@ -10,9 +9,280 @@ GO SET ANSI_NULLS ON GO -USE InMemDB +USE DiskBasedDB GO +IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_FulfillOrders' ) + DROP PROCEDURE usp_FulfillOrders +GO + +CREATE PROCEDURE dbo.usp_FulfillOrders +AS +BEGIN + DECLARE @OrderID bigint, + @OrderCID bigint, + @FulfillmentDate datetime = GETDATE() + + -- get the oldest order id that has not been fulfilled + SELECT TOP 1 + @OrderID = O_ID, + @OrderCID = O_C_ID + FROM dbo.Orders + WHERE O_FM_DTS = '1900-01-01 00:00:00.000' + ORDER BY O_DTS ASC + + IF @OrderID IS NOT NULL + BEGIN + -- update the order with the fulfilment date + UPDATE dbo.Orders + SET O_FM_DTS = @FulfillmentDate + WHERE O_ID = @OrderID + + -- insert the data into the FulFillment table + INSERT INTO dbo.Fulfillment (FM_O_ID, FM_C_ID, FM_DTS) VALUES (@OrderID, @OrderCID, @FulfillmentDate) + + SELECT @orderID AS 'OrderID Fulfilled' + END + +END +GO + + +IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_GetOrdersByCustomerID' ) + DROP PROCEDURE usp_GetOrdersByCustomerID +GO + +CREATE PROCEDURE dbo.usp_GetOrdersByCustomerID +( @C_ID bigint) +AS +BEGIN + DECLARE @c_f_name varchar(20), + @c_l_name varchar(25), + @c_email varchar(50), + @o_id bigint, + @o_total decimal(9,2), + @o_dts datetime + + + SELECT @c_f_name = C_F_NAME, + @c_l_name = C_L_NAME, + @c_email = C_EMAIL + FROM dbo.Customer + WHERE C_ID = @C_ID + + SELECT @o_id = O_ID, + @o_total = O_TOTAL, + @o_dts = O_DTS + FROM dbo.Orders + WHERE O_C_ID = @c_id + ORDER BY O_ID ASC + + SELECT OL_SEQ, + OL_PR_ID, + OL_QTY, + OL_PRICE + FROM dbo.OrderLines + WHERE OL_O_ID = @o_id + + SELECT @c_f_name, + @c_l_name, + @c_email +END + +GO + +IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_GetProductsByType' ) + DROP PROCEDURE usp_GetProductsByType +GO + +CREATE PROCEDURE dbo.usp_GetProductsByType +( @REQ_TYPE int ) +AS +BEGIN + SELECT TOP 10 + PR_ID, + PR_NAME, + PR_TYPE, + PR_DESC, + PR_PRICE + FROM dbo.Products + WHERE PR_TYPE = @REQ_TYPE + ORDER BY PR_PRICE ASC + +END + +GO + + +IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_GetProductsPriceByPK' ) + DROP PROCEDURE usp_GetProductsPriceByPK +GO + +CREATE PROCEDURE dbo.usp_GetProductsPriceByPK +( @LOWER_PK bigint, + @UPPER_PK bigint) +AS +BEGIN + SELECT PR_ID, + PR_NAME, + PR_TYPE, + PR_DESC, + PR_PRICE + FROM dbo.Products + WHERE PR_ID BETWEEN @LOWER_PK AND @UPPER_PK + ORDER BY PR_PRICE ASC +END + +GO + + +IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_InsertOrder' ) + DROP PROCEDURE usp_InsertOrder +GO + +CREATE PROCEDURE [dbo].[usp_InsertOrder] +( @C_ID bigint, + @OL_SEQ_1 tinyint, + @OL_PR_ID_1 bigint, + @OL_PR_QTY_1 int, + @OL_SEQ_2 tinyint, + @OL_PR_ID_2 bigint, + @OL_PR_QTY_2 int, + @OL_SEQ_3 tinyint, + @OL_PR_ID_3 bigint, + @OL_PR_QTY_3 int, + @OL_SEQ_4 tinyint, + @OL_PR_ID_4 bigint, + @OL_PR_QTY_4 int, + @OL_SEQ_5 tinyint, + @OL_PR_ID_5 bigint, + @OL_PR_QTY_5 int) +AS +BEGIN + DECLARE @Order_Id bigint, + @TotalPrice decimal(12,2) = 0, + @NullDate datetime = '1900-01-01', + @SeqNumber tinyint = 0, + @SeqCount tinyint = 5, + @SeqID tinyint, + @PR_ID bigint, + @PR_Qty int, + @PR_Price numeric(9,2), + @InsertFlag bit = 0 + + --insert an Order record to claim the O_ID + INSERT INTO dbo.Orders (O_C_ID, O_TOTAL, O_DTS, O_FM_DTS) VALUES (@C_ID, 0, GETDATE(), @NullDate) + + -- get the inserted order id + SELECT @order_id = SCOPE_IDENTITY() + + -- now process the order lines + WHILE (@SeqNumber < @SeqCount) + BEGIN + SELECT @SeqNumber = @SeqNumber + 1 + + IF @SeqNumber = 1 + BEGIN + SELECT @SeqID = @OL_SEQ_1, + @PR_ID = @OL_PR_ID_1, + @PR_Qty = @OL_PR_QTY_1, + @PR_Price = PR_PRICE + FROM dbo.Products + WHERE PR_ID = @OL_PR_ID_1 + + IF @@ROWCOUNT > 0 + BEGIN + SET @InsertFlag = 1 + SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) + END + END + + IF @SeqNumber = 2 + BEGIN + SELECT @SeqID = @OL_SEQ_2, + @PR_ID = @OL_PR_ID_2, + @PR_Qty = @OL_PR_QTY_2, + @PR_Price = PR_PRICE + FROM dbo.Products + WHERE PR_ID = @OL_PR_ID_2 + + IF @@ROWCOUNT > 0 + BEGIN + SET @InsertFlag = 1 + SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) + END + END + + IF @SeqNumber = 3 + BEGIN + SELECT @SeqID = @OL_SEQ_3, + @PR_ID = @OL_PR_ID_3, + @PR_Qty = @OL_PR_QTY_3, + @PR_Price = PR_PRICE + FROM dbo.Products + WHERE PR_ID = @OL_PR_ID_3 + + IF @@ROWCOUNT > 0 + BEGIN + SET @InsertFlag = 1 + SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) + END + END + + IF @SeqNumber = 4 + BEGIN + SELECT @SeqID = @OL_SEQ_4, + @PR_ID = @OL_PR_ID_4, + @PR_Qty = @OL_PR_QTY_4, + @PR_Price = PR_PRICE + FROM dbo.Products + WHERE PR_ID = @OL_PR_ID_4 + + IF @@ROWCOUNT > 0 + BEGIN + SET @InsertFlag = 1 + SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) + END + END + + IF @SeqNumber = 5 + BEGIN + SELECT @SeqID = @OL_SEQ_5, + @PR_ID = @OL_PR_ID_5, + @PR_Qty = @OL_PR_QTY_5, + @PR_Price = PR_PRICE + FROM dbo.Products + WHERE PR_ID = @OL_PR_ID_5 + + IF @@ROWCOUNT > 0 + BEGIN + SET @InsertFlag = 1 + SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) + END + END + + IF (@InsertFlag = 1) + BEGIN + INSERT INTO dbo.OrderLines VALUES (@order_id, @SeqID, @PR_ID, @PR_QTY, @PR_Price, GETDATE()) + SET @InsertFlag = 0 + END + END + + -- now update the order with the total price + UPDATE dbo.Orders + SET O_TOTAL = @TotalPrice + WHERE O_ID = @Order_id AND + O_C_ID = @C_ID + + SELECT @order_id, + @C_ID, + @TotalPrice + +END +GO + + + IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_ProductSelectionCriteria' ) DROP PROCEDURE usp_ProductSelectionCriteria GO @@ -21,12 +291,8 @@ CREATE PROCEDURE [dbo].usp_ProductSelectionCriteria ( @LOWER_PR_ID bigint, @UPPER_PR_ID bigint, @PC_ID bigint) -WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING -AS BEGIN ATOMIC WITH -( - TRANSACTION ISOLATION LEVEL = SNAPSHOT, - LANGUAGE = N'us_english' -) +AS +BEGIN DECLARE @pc_dec001 float, @pc_dec002 float, @pc_dec003 float, diff --git a/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_FulfillOrders.sql b/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_FulfillOrders.sql deleted file mode 100644 index 559263af..00000000 --- a/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_FulfillOrders.sql +++ /dev/null @@ -1,55 +0,0 @@ ------------------------------------------------------------------- --- -- --- File: usp_FulfillOrders.SQL -- --- -- ------------------------------------------------------------------- -SET QUOTED_IDENTIFIER OFF -GO - -SET ANSI_NULLS ON -GO - -USE InMemDB -GO - -IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_FulfillOrders' ) - DROP PROCEDURE usp_FulfillOrders -GO - -CREATE PROCEDURE dbo.usp_FulfillOrders -WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING -AS BEGIN ATOMIC WITH -( - TRANSACTION ISOLATION LEVEL = SNAPSHOT, - LANGUAGE = N'us_english' -) - DECLARE @OrderID bigint, - @OrderCID bigint, - @FulfillmentDate datetime = GETDATE(), - @OrdersToProcess int = 10 - - WHILE (@OrdersToProcess > 0) - BEGIN - SELECT TOP 1 - @OrderID = O_ID, - @OrderCID = O_C_ID - FROM dbo.Orders - WHERE O_FM_DTS = '1900-01-01 00:00:00.000' - ORDER BY O_DTS ASC - - IF @OrderID IS NOT NULL - BEGIN - -- update the order with the fulfilment date - UPDATE dbo.Orders - SET O_FM_DTS = @FulfillmentDate - WHERE O_ID = @OrderID - - -- insert the data into the FulFillment table - INSERT INTO dbo.Fulfillment (FM_O_ID, FM_C_ID, FM_DTS) VALUES (@OrderID, @OrderCID, @FulfillmentDate) - - SELECT @OrderID AS 'OrderID Fulfilled' - END - - SET @OrdersToProcess = @OrdersToProcess - 1 - END -END diff --git a/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_GetOrdersByCustomerID.sql b/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_GetOrdersByCustomerID.sql deleted file mode 100644 index 77b1577f..00000000 --- a/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_GetOrdersByCustomerID.sql +++ /dev/null @@ -1,61 +0,0 @@ ------------------------------------------------------------------- --- -- --- File: usp_GetOrdersByCustomerID.SQL -- --- Version: 0.0.0-1006 -- --- -- ------------------------------------------------------------------- -SET QUOTED_IDENTIFIER OFF -GO - -SET ANSI_NULLS ON -GO - -USE InMemDB -GO - -IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_GetOrdersByCustomerID' ) - DROP PROCEDURE usp_GetOrdersByCustomerID -GO - -CREATE PROCEDURE dbo.usp_GetOrdersByCustomerID -( @C_ID bigint) -WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING -AS BEGIN ATOMIC WITH -( - TRANSACTION ISOLATION LEVEL = SNAPSHOT, - LANGUAGE = N'us_english' -) - DECLARE @c_f_name varchar(20), - @c_l_name varchar(25), - @c_email varchar(50), - @o_id bigint, - @o_total decimal(9,2), - @o_dts datetime - - - SELECT @c_f_name = C_F_NAME, - @c_l_name = C_L_NAME, - @c_email = C_EMAIL - FROM dbo.Customer - WHERE C_ID = @C_ID - - SELECT @o_id = O_ID, - @o_total = O_TOTAL, - @o_dts = O_DTS - FROM dbo.Orders - WHERE O_C_ID = @c_id - ORDER BY O_ID ASC - - SELECT OL_SEQ, - OL_PR_ID, - OL_QTY, - OL_PRICE - FROM dbo.OrderLines - WHERE OL_O_ID = @o_id - - SELECT @c_f_name, - @c_l_name, - @c_email -END - -GO diff --git a/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_GetProductsByType.sql b/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_GetProductsByType.sql deleted file mode 100644 index 1a73376b..00000000 --- a/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_GetProductsByType.sql +++ /dev/null @@ -1,40 +0,0 @@ ------------------------------------------------------------------- --- -- --- File: usp_GetProductsByType.SQL -- --- Version: 0.0.0-1006 -- --- -- ------------------------------------------------------------------- -SET QUOTED_IDENTIFIER OFF -GO - -SET ANSI_NULLS ON -GO - -USE InMemDB -GO - -IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_GetProductsByType' ) - DROP PROCEDURE usp_GetProductsByType -GO - -CREATE PROCEDURE dbo.usp_GetProductsByType -( @REQ_TYPE int ) -WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING -AS BEGIN ATOMIC WITH -( - TRANSACTION ISOLATION LEVEL = SNAPSHOT, - LANGUAGE = N'us_english' -) - SELECT TOP 10 - PR_ID, - PR_NAME, - PR_TYPE, - PR_DESC, - PR_PRICE - FROM dbo.Products - WHERE PR_TYPE = @REQ_TYPE - ORDER BY PR_PRICE ASC - -END - -GO diff --git a/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_InsertOrder.sql b/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_InsertOrder.sql deleted file mode 100644 index 06acb2cb..00000000 --- a/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_InsertOrder.sql +++ /dev/null @@ -1,167 +0,0 @@ ------------------------------------------------------------------- --- -- --- File: usp_InsertOrder.SQL -- --- Version: 0.0.0-1006 -- --- -- ------------------------------------------------------------------- -SET QUOTED_IDENTIFIER OFF -GO - -SET ANSI_NULLS ON -GO - -USE InMemDB -GO - -IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_InsertOrder' ) - DROP PROCEDURE usp_InsertOrder -GO - -CREATE PROCEDURE [dbo].[usp_InsertOrder] -( @C_ID bigint, - @OL_SEQ_1 tinyint, - @OL_PR_ID_1 bigint, - @OL_PR_QTY_1 int, - @OL_SEQ_2 tinyint, - @OL_PR_ID_2 bigint, - @OL_PR_QTY_2 int, - @OL_SEQ_3 tinyint, - @OL_PR_ID_3 bigint, - @OL_PR_QTY_3 int, - @OL_SEQ_4 tinyint, - @OL_PR_ID_4 bigint, - @OL_PR_QTY_4 int, - @OL_SEQ_5 tinyint, - @OL_PR_ID_5 bigint, - @OL_PR_QTY_5 int) -WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING -AS BEGIN ATOMIC WITH -( - TRANSACTION ISOLATION LEVEL = SNAPSHOT, - LANGUAGE = N'us_english' -) - DECLARE @Order_Id bigint, - @TotalPrice decimal(12,2) = 0, - @NullDate datetime = '1900-01-01', - @SeqNumber tinyint = 0, - @SeqCount tinyint = 5, - @SeqID tinyint, - @PR_ID bigint, - @PR_Qty int, - @PR_Price numeric(9,2), - @InsertFlag bit = 0 - - --insert an Order record to claim the O_ID - INSERT INTO dbo.Orders (O_C_ID, O_TOTAL, O_DTS, O_FM_DTS) VALUES (@C_ID, 0, GETDATE(), @NullDate) - - -- get the inserted order id - SELECT @order_id = SCOPE_IDENTITY() - - -- now process the order lines - WHILE (@SeqNumber < @SeqCount) - BEGIN - SELECT @SeqNumber = @SeqNumber + 1 - - IF @SeqNumber = 1 - BEGIN - SELECT @SeqID = @OL_SEQ_1, - @PR_ID = @OL_PR_ID_1, - @PR_Qty = @OL_PR_QTY_1, - @PR_Price = PR_PRICE - FROM dbo.Products - WHERE PR_ID = @OL_PR_ID_1 - - IF @@ROWCOUNT > 0 - BEGIN - SET @InsertFlag = 1 - SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) - END - END - - IF @SeqNumber = 2 - BEGIN - SELECT @SeqID = @OL_SEQ_2, - @PR_ID = @OL_PR_ID_2, - @PR_Qty = @OL_PR_QTY_2, - @PR_Price = PR_PRICE - FROM dbo.Products - WHERE PR_ID = @OL_PR_ID_2 - - IF @@ROWCOUNT > 0 - BEGIN - SET @InsertFlag = 1 - SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) - END - END - - IF @SeqNumber = 3 - BEGIN - SELECT @SeqID = @OL_SEQ_3, - @PR_ID = @OL_PR_ID_3, - @PR_Qty = @OL_PR_QTY_3, - @PR_Price = PR_PRICE - FROM dbo.Products - WHERE PR_ID = @OL_PR_ID_3 - - IF @@ROWCOUNT > 0 - BEGIN - SET @InsertFlag = 1 - SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) - END - END - - IF @SeqNumber = 4 - BEGIN - SELECT @SeqID = @OL_SEQ_4, - @PR_ID = @OL_PR_ID_4, - @PR_Qty = @OL_PR_QTY_4, - @PR_Price = PR_PRICE - FROM dbo.Products - WHERE PR_ID = @OL_PR_ID_4 - - IF @@ROWCOUNT > 0 - BEGIN - SET @InsertFlag = 1 - SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) - END - END - - IF @SeqNumber = 5 - BEGIN - SELECT @SeqID = @OL_SEQ_5, - @PR_ID = @OL_PR_ID_5, - @PR_Qty = @OL_PR_QTY_5, - @PR_Price = PR_PRICE - FROM dbo.Products - WHERE PR_ID = @OL_PR_ID_5 - - IF @@ROWCOUNT > 0 - BEGIN - SET @InsertFlag = 1 - SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) - END - END - - IF (@InsertFlag = 1) - BEGIN - INSERT INTO dbo.OrderLines VALUES (@order_id, @SeqID, @PR_ID, @PR_QTY, @PR_Price, GETDATE()) - SET @InsertFlag = 0 - END - END - - -- now update the order with the total price - UPDATE dbo.Orders - SET O_TOTAL = @TotalPrice - WHERE O_ID = @Order_id AND - O_C_ID = @C_ID - - SELECT @order_id, - @C_ID, - @TotalPrice - -END - - -GO - - diff --git a/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_StoredProcedures.sql b/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_StoredProcedures.sql new file mode 100644 index 00000000..fedd8383 --- /dev/null +++ b/samples/features/in-memory/benchmark-order-processing/stored-procedures/InMem_StoredProcedures.sql @@ -0,0 +1,536 @@ +------------------------------------------------------------------ +-- -- +-- -- +------------------------------------------------------------------ +SET QUOTED_IDENTIFIER OFF +GO + +SET ANSI_NULLS ON +GO + +USE InMemDB +GO + +IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_FulfillOrders' ) + DROP PROCEDURE usp_FulfillOrders +GO + +CREATE PROCEDURE dbo.usp_FulfillOrders +WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING +AS BEGIN ATOMIC WITH +( + TRANSACTION ISOLATION LEVEL = SNAPSHOT, + LANGUAGE = N'us_english' +) + DECLARE @OrderID bigint, + @OrderCID bigint, + @FulfillmentDate datetime = GETDATE(), + @OrdersToProcess int = 10 + + WHILE (@OrdersToProcess > 0) + BEGIN + SELECT TOP 1 + @OrderID = O_ID, + @OrderCID = O_C_ID + FROM dbo.Orders + WHERE O_FM_DTS = '1900-01-01 00:00:00.000' + ORDER BY O_DTS ASC + + IF @OrderID IS NOT NULL + BEGIN + -- update the order with the fulfilment date + UPDATE dbo.Orders + SET O_FM_DTS = @FulfillmentDate + WHERE O_ID = @OrderID + + -- insert the data into the FulFillment table + INSERT INTO dbo.Fulfillment (FM_O_ID, FM_C_ID, FM_DTS) VALUES (@OrderID, @OrderCID, @FulfillmentDate) + + SELECT @OrderID AS 'OrderID Fulfilled' + END + + SET @OrdersToProcess = @OrdersToProcess - 1 + END +END +GO + +IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_GetOrdersByCustomerID' ) + DROP PROCEDURE usp_GetOrdersByCustomerID +GO + +CREATE PROCEDURE dbo.usp_GetOrdersByCustomerID +( @C_ID bigint) +WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING +AS BEGIN ATOMIC WITH +( + TRANSACTION ISOLATION LEVEL = SNAPSHOT, + LANGUAGE = N'us_english' +) + DECLARE @c_f_name varchar(20), + @c_l_name varchar(25), + @c_email varchar(50), + @o_id bigint, + @o_total decimal(9,2), + @o_dts datetime + + + SELECT @c_f_name = C_F_NAME, + @c_l_name = C_L_NAME, + @c_email = C_EMAIL + FROM dbo.Customer + WHERE C_ID = @C_ID + + SELECT @o_id = O_ID, + @o_total = O_TOTAL, + @o_dts = O_DTS + FROM dbo.Orders + WHERE O_C_ID = @c_id + ORDER BY O_ID ASC + + SELECT OL_SEQ, + OL_PR_ID, + OL_QTY, + OL_PRICE + FROM dbo.OrderLines + WHERE OL_O_ID = @o_id + + SELECT @c_f_name, + @c_l_name, + @c_email +END + +GO + + +IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_GetProductsByType' ) + DROP PROCEDURE usp_GetProductsByType +GO + +CREATE PROCEDURE dbo.usp_GetProductsByType +( @REQ_TYPE int ) +WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING +AS BEGIN ATOMIC WITH +( + TRANSACTION ISOLATION LEVEL = SNAPSHOT, + LANGUAGE = N'us_english' +) + SELECT TOP 10 + PR_ID, + PR_NAME, + PR_TYPE, + PR_DESC, + PR_PRICE + FROM dbo.Products + WHERE PR_TYPE = @REQ_TYPE + ORDER BY PR_PRICE ASC + +END + +GO + + +IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_GetProductsPriceByPK' ) + DROP PROCEDURE usp_GetProductsPriceByPK +GO + +CREATE PROCEDURE dbo.usp_GetProductsPriceByPK +( @LOWER_PK bigint, + @UPPER_PK bigint) +WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING +AS BEGIN ATOMIC WITH +( + TRANSACTION ISOLATION LEVEL = SNAPSHOT, + LANGUAGE = N'us_english' +) + SELECT PR_ID, + PR_NAME, + PR_TYPE, + PR_DESC, + PR_PRICE + FROM dbo.Products + WHERE PR_ID BETWEEN @LOWER_PK AND @UPPER_PK + ORDER BY PR_PRICE ASC +END + +GO + + +IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_InsertOrder' ) + DROP PROCEDURE usp_InsertOrder +GO + +CREATE PROCEDURE [dbo].[usp_InsertOrder] +( @C_ID bigint, + @OL_SEQ_1 tinyint, + @OL_PR_ID_1 bigint, + @OL_PR_QTY_1 int, + @OL_SEQ_2 tinyint, + @OL_PR_ID_2 bigint, + @OL_PR_QTY_2 int, + @OL_SEQ_3 tinyint, + @OL_PR_ID_3 bigint, + @OL_PR_QTY_3 int, + @OL_SEQ_4 tinyint, + @OL_PR_ID_4 bigint, + @OL_PR_QTY_4 int, + @OL_SEQ_5 tinyint, + @OL_PR_ID_5 bigint, + @OL_PR_QTY_5 int) +WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING +AS BEGIN ATOMIC WITH +( + TRANSACTION ISOLATION LEVEL = SNAPSHOT, + LANGUAGE = N'us_english' +) + DECLARE @Order_Id bigint, + @TotalPrice decimal(12,2) = 0, + @NullDate datetime = '1900-01-01', + @SeqNumber tinyint = 0, + @SeqCount tinyint = 5, + @SeqID tinyint, + @PR_ID bigint, + @PR_Qty int, + @PR_Price numeric(9,2), + @InsertFlag bit = 0 + + --insert an Order record to claim the O_ID + INSERT INTO dbo.Orders (O_C_ID, O_TOTAL, O_DTS, O_FM_DTS) VALUES (@C_ID, 0, GETDATE(), @NullDate) + + -- get the inserted order id + SELECT @order_id = SCOPE_IDENTITY() + + -- now process the order lines + WHILE (@SeqNumber < @SeqCount) + BEGIN + SELECT @SeqNumber = @SeqNumber + 1 + + IF @SeqNumber = 1 + BEGIN + SELECT @SeqID = @OL_SEQ_1, + @PR_ID = @OL_PR_ID_1, + @PR_Qty = @OL_PR_QTY_1, + @PR_Price = PR_PRICE + FROM dbo.Products + WHERE PR_ID = @OL_PR_ID_1 + + IF @@ROWCOUNT > 0 + BEGIN + SET @InsertFlag = 1 + SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) + END + END + + IF @SeqNumber = 2 + BEGIN + SELECT @SeqID = @OL_SEQ_2, + @PR_ID = @OL_PR_ID_2, + @PR_Qty = @OL_PR_QTY_2, + @PR_Price = PR_PRICE + FROM dbo.Products + WHERE PR_ID = @OL_PR_ID_2 + + IF @@ROWCOUNT > 0 + BEGIN + SET @InsertFlag = 1 + SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) + END + END + + IF @SeqNumber = 3 + BEGIN + SELECT @SeqID = @OL_SEQ_3, + @PR_ID = @OL_PR_ID_3, + @PR_Qty = @OL_PR_QTY_3, + @PR_Price = PR_PRICE + FROM dbo.Products + WHERE PR_ID = @OL_PR_ID_3 + + IF @@ROWCOUNT > 0 + BEGIN + SET @InsertFlag = 1 + SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) + END + END + + IF @SeqNumber = 4 + BEGIN + SELECT @SeqID = @OL_SEQ_4, + @PR_ID = @OL_PR_ID_4, + @PR_Qty = @OL_PR_QTY_4, + @PR_Price = PR_PRICE + FROM dbo.Products + WHERE PR_ID = @OL_PR_ID_4 + + IF @@ROWCOUNT > 0 + BEGIN + SET @InsertFlag = 1 + SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) + END + END + + IF @SeqNumber = 5 + BEGIN + SELECT @SeqID = @OL_SEQ_5, + @PR_ID = @OL_PR_ID_5, + @PR_Qty = @OL_PR_QTY_5, + @PR_Price = PR_PRICE + FROM dbo.Products + WHERE PR_ID = @OL_PR_ID_5 + + IF @@ROWCOUNT > 0 + BEGIN + SET @InsertFlag = 1 + SET @TotalPrice = @TotalPrice + (@PR_QTY * @PR_Price) + END + END + + IF (@InsertFlag = 1) + BEGIN + INSERT INTO dbo.OrderLines VALUES (@order_id, @SeqID, @PR_ID, @PR_QTY, @PR_Price, GETDATE()) + SET @InsertFlag = 0 + END + END + + -- now update the order with the total price + UPDATE dbo.Orders + SET O_TOTAL = @TotalPrice + WHERE O_ID = @Order_id AND + O_C_ID = @C_ID + + SELECT @order_id, + @C_ID, + @TotalPrice + +END + + +GO + + +IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_ProductSelectionCriteria' ) + DROP PROCEDURE usp_ProductSelectionCriteria +GO + +CREATE PROCEDURE [dbo].usp_ProductSelectionCriteria +( @LOWER_PR_ID bigint, + @UPPER_PR_ID bigint, + @PC_ID bigint) +WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING +AS BEGIN ATOMIC WITH +( + TRANSACTION ISOLATION LEVEL = SNAPSHOT, + LANGUAGE = N'us_english' +) + DECLARE @pc_dec001 float, + @pc_dec002 float, + @pc_dec003 float, + @pc_dec004 float, + @pc_dec005 float, + @pc_dec006 float, + @pc_dec007 float, + @pc_dec008 float, + @pc_dec009 float, + @pc_dec010 float, + @pc_dec011 float, + @pc_dec012 float, + @pc_dec013 float, + @pc_dec014 float, + @pc_dec015 float, + @pc_dec016 float, + @pc_dec017 float, + @pc_dec018 float, + @pc_dec019 float, + @pc_dec020 float, + @pc_dec021 float, + @pc_dec022 float, + @pc_dec023 float, + @pc_dec024 float, + @pc_dec025 float, + @pc_dec026 float, + @pc_dec027 float, + @pc_dec028 float, + @pc_dec029 float, + @pc_dec030 float, + @pc_dec031 float, + @pc_dec032 float, + @pc_dec033 float, + @pc_dec034 float, + @pc_dec035 float, + @pc_dec036 float, + @pc_dec037 float, + @pc_dec038 float, + @pc_dec039 float, + @pc_dec040 float, + @pc_dec041 float, + @pc_dec042 float, + @pc_dec043 float, + @pc_dec044 float, + @pc_dec045 float, + @pc_dec046 float, + @pc_dec047 float, + @pc_dec048 float, + @pc_dec049 float, + @pc_dec050 float, + @pc_dec051 float, + @pc_dec052 float, + @pc_dec053 float, + @pc_dec054 float, + @pc_dec055 float, + @pc_dec056 float, + @pc_dec057 float, + @pc_dec058 float, + @pc_dec059 float, + @pc_dec060 float, + @pc_dec061 float, + @pc_dec062 float, + @pc_dec063 float, + @pc_dec064 float, + @pc_dec065 float, + @pc_dec066 float, + @pc_dec067 float, + @pc_dec068 float, + @pc_dec069 float, + @pc_dec070 float, + @pc_dec071 float, + @pc_dec072 float, + @pc_dec073 float, + @pc_dec074 float, + @pc_dec075 float, + @pc_dec076 float, + @pc_dec077 float, + @pc_dec078 float, + @pc_dec079 float, + @pc_dec080 float, + @pc_dec081 float, + @pc_dec082 float, + @pc_dec083 float, + @pc_dec084 float, + @pc_dec085 float, + @pc_dec086 float, + @pc_dec087 float, + @pc_dec088 float, + @pc_dec089 float, + @pc_dec090 float, + @pc_dec091 float, + @pc_dec092 float, + @pc_dec093 float, + @pc_dec094 float, + @pc_dec095 float, + @pc_dec096 float, + @pc_dec097 float, + @pc_dec098 float, + @pc_dec099 float, + @pc_dec100 float + + SELECT @pc_dec001 = PC_DEC1, + @pc_dec002 = PC_DEC2, + @pc_dec003 = PC_DEC3, + @pc_dec004 = PC_DEC4, + @pc_dec005 = PC_DEC5, + @pc_dec006 = PC_DEC6, + @pc_dec007 = PC_DEC7, + @pc_dec008 = PC_DEC8, + @pc_dec009 = PC_DEC9, + @pc_dec010 = PC_DEC10, + @pc_dec011 = PC_DEC11, + @pc_dec012 = PC_DEC12, + @pc_dec013 = PC_DEC13, + @pc_dec014 = PC_DEC14, + @pc_dec015 = PC_DEC15, + @pc_dec016 = PC_DEC16, + @pc_dec017 = PC_DEC17, + @pc_dec018 = PC_DEC18, + @pc_dec019 = PC_DEC19, + @pc_dec020 = PC_DEC20, + @pc_dec021 = PC_DEC21, + @pc_dec022 = PC_DEC22, + @pc_dec023 = PC_DEC23, + @pc_dec024 = PC_DEC24, + @pc_dec025 = PC_DEC25, + @pc_dec026 = PC_DEC26, + @pc_dec027 = PC_DEC27, + @pc_dec028 = PC_DEC28, + @pc_dec029 = PC_DEC29, + @pc_dec030 = PC_DEC30, + @pc_dec031 = PC_DEC31, + @pc_dec032 = PC_DEC32, + @pc_dec033 = PC_DEC33, + @pc_dec034 = PC_DEC34, + @pc_dec035 = PC_DEC35, + @pc_dec036 = PC_DEC36, + @pc_dec037 = PC_DEC37, + @pc_dec038 = PC_DEC38, + @pc_dec039 = PC_DEC39, + @pc_dec040 = PC_DEC40, + @pc_dec041 = PC_DEC41, + @pc_dec042 = PC_DEC42, + @pc_dec043 = PC_DEC43, + @pc_dec044 = PC_DEC44, + @pc_dec045 = PC_DEC45, + @pc_dec046 = PC_DEC46, + @pc_dec047 = PC_DEC47, + @pc_dec048 = PC_DEC48, + @pc_dec049 = PC_DEC49, + @pc_dec050 = PC_DEC50, + @pc_dec051 = PC_DEC51, + @pc_dec052 = PC_DEC52, + @pc_dec053 = PC_DEC53, + @pc_dec054 = PC_DEC54, + @pc_dec055 = PC_DEC55, + @pc_dec056 = PC_DEC56, + @pc_dec057 = PC_DEC57, + @pc_dec058 = PC_DEC58, + @pc_dec059 = PC_DEC59, + @pc_dec060 = PC_DEC60, + @pc_dec061 = PC_DEC61, + @pc_dec062 = PC_DEC62, + @pc_dec063 = PC_DEC63, + @pc_dec064 = PC_DEC64, + @pc_dec065 = PC_DEC65, + @pc_dec066 = PC_DEC66, + @pc_dec067 = PC_DEC67, + @pc_dec068 = PC_DEC68, + @pc_dec069 = PC_DEC69, + @pc_dec070 = PC_DEC70, + @pc_dec071 = PC_DEC71, + @pc_dec072 = PC_DEC72, + @pc_dec073 = PC_DEC73, + @pc_dec074 = PC_DEC74, + @pc_dec075 = PC_DEC75, + @pc_dec076 = PC_DEC76, + @pc_dec077 = PC_DEC77, + @pc_dec078 = PC_DEC78, + @pc_dec079 = PC_DEC79, + @pc_dec080 = PC_DEC80, + @pc_dec081 = PC_DEC81, + @pc_dec082 = PC_DEC82, + @pc_dec083 = PC_DEC83, + @pc_dec084 = PC_DEC84, + @pc_dec085 = PC_DEC85, + @pc_dec086 = PC_DEC86, + @pc_dec087 = PC_DEC87, + @pc_dec088 = PC_DEC88, + @pc_dec089 = PC_DEC89, + @pc_dec090 = PC_DEC90, + @pc_dec091 = PC_DEC91, + @pc_dec092 = PC_DEC92, + @pc_dec093 = PC_DEC93, + @pc_dec094 = PC_DEC94, + @pc_dec095 = PC_DEC95, + @pc_dec096 = PC_DEC96, + @pc_dec097 = PC_DEC97, + @pc_dec098 = PC_DEC98, + @pc_dec099 = PC_DEC99, + @pc_dec100 = PC_DEC100 + FROM dbo.Purchase_Criteria + WHERE PC_ID = @PC_ID + + SELECT TOP 20 PR_NAME, + ((@pc_dec001/PR_DEC1-1)+(@pc_dec002/PR_DEC2-1)+(@pc_dec003/PR_DEC3-1)+(@pc_dec004/PR_DEC4-1)+(@pc_dec005/PR_DEC5-1)+(@pc_dec006/PR_DEC6-1)+(@pc_dec007/PR_DEC7-1)+(@pc_dec008/PR_DEC8-1)+(@pc_dec009/PR_DEC9-1)+(@pc_dec010/PR_DEC10-1)+(@pc_dec011/PR_DEC11-1)+(@pc_dec012/PR_DEC12-1)+(@pc_dec013/PR_DEC13-1)+(@pc_dec014/PR_DEC14-1)+(@pc_dec015/PR_DEC15-1)+(@pc_dec016/PR_DEC16-1)+(@pc_dec017/PR_DEC17-1)+(@pc_dec018/PR_DEC18-1)+(@pc_dec019/PR_DEC19-1)+(@pc_dec020/PR_DEC20-1)+(@pc_dec021/PR_DEC21-1)+(@pc_dec022/PR_DEC22-1)+(@pc_dec023/PR_DEC23-1)+(@pc_dec024/PR_DEC24-1)+(@pc_dec025/PR_DEC25-1)+(@pc_dec026/PR_DEC26-1)+(@pc_dec027/PR_DEC27-1)+(@pc_dec028/PR_DEC28-1)+(@pc_dec029/PR_DEC29-1)+(@pc_dec030/PR_DEC30-1)+(@pc_dec031/PR_DEC31-1)+(@pc_dec032/PR_DEC32-1)+(@pc_dec033/PR_DEC33-1)+(@pc_dec034/PR_DEC34-1)+(@pc_dec035/PR_DEC35-1)+(@pc_dec036/PR_DEC36-1)+(@pc_dec037/PR_DEC37-1)+(@pc_dec038/PR_DEC38-1)+(@pc_dec039/PR_DEC39-1)+(@pc_dec040/PR_DEC40-1)+(@pc_dec041/PR_DEC41-1)+(@pc_dec042/PR_DEC42-1)+(@pc_dec043/PR_DEC43-1)+(@pc_dec044/PR_DEC44-1)+(@pc_dec045/PR_DEC45-1)+(@pc_dec046/PR_DEC46-1)+(@pc_dec047/PR_DEC47-1)+(@pc_dec048/PR_DEC48-1)+(@pc_dec049/PR_DEC49-1)+(@pc_dec050/PR_DEC50-1)+(@pc_dec051/PR_DEC51-1)+(@pc_dec052/PR_DEC52-1)+(@pc_dec053/PR_DEC53-1)+(@pc_dec054/PR_DEC54-1)+(@pc_dec055/PR_DEC55-1)+(@pc_dec056/PR_DEC56-1)+(@pc_dec057/PR_DEC57-1)+(@pc_dec058/PR_DEC58-1)+(@pc_dec059/PR_DEC59-1)+(@pc_dec060/PR_DEC60-1)+(@pc_dec061/PR_DEC61-1)+(@pc_dec062/PR_DEC62-1)+(@pc_dec063/PR_DEC63-1)+(@pc_dec064/PR_DEC64-1)+(@pc_dec065/PR_DEC65-1)+(@pc_dec066/PR_DEC66-1)+(@pc_dec067/PR_DEC67-1)+(@pc_dec068/PR_DEC68-1)+(@pc_dec069/PR_DEC69-1)+(@pc_dec070/PR_DEC70-1)+(@pc_dec071/PR_DEC71-1)+(@pc_dec072/PR_DEC72-1)+(@pc_dec073/PR_DEC73-1)+(@pc_dec074/PR_DEC74-1)+(@pc_dec075/PR_DEC75-1)+(@pc_dec076/PR_DEC76-1)+(@pc_dec077/PR_DEC77-1)+(@pc_dec078/PR_DEC78-1)+(@pc_dec079/PR_DEC79-1)+(@pc_dec080/PR_DEC80-1)+(@pc_dec081/PR_DEC81-1)+(@pc_dec082/PR_DEC82-1)+(@pc_dec083/PR_DEC83-1)+(@pc_dec084/PR_DEC84-1)+(@pc_dec085/PR_DEC85-1)+(@pc_dec086/PR_DEC86-1)+(@pc_dec087/PR_DEC87-1)+(@pc_dec088/PR_DEC88-1)+(@pc_dec089/PR_DEC89-1)+(@pc_dec090/PR_DEC90-1)+(@pc_dec091/PR_DEC91-1)+(@pc_dec092/PR_DEC92-1)+(@pc_dec093/PR_DEC93-1)+(@pc_dec094/PR_DEC94-1)+(@pc_dec095/PR_DEC95-1)+(@pc_dec096/PR_DEC96-1)+(@pc_dec097/PR_DEC97-1)+(@pc_dec098/PR_DEC98-1)+(@pc_dec099/PR_DEC99-1)+(@pc_dec100/PR_DEC100-1)) AS Closeness + FROM dbo.Products + WHERE PR_ID BETWEEN @LOWER_PR_ID AND @UPPER_PR_ID + ORDER BY Closeness ASC + +END +GO + diff --git a/samples/features/in-memory/benchmark-order-processing/stored-procedures/inMem_GetProductsPriceByPK.sql b/samples/features/in-memory/benchmark-order-processing/stored-procedures/inMem_GetProductsPriceByPK.sql deleted file mode 100644 index c735659e..00000000 --- a/samples/features/in-memory/benchmark-order-processing/stored-procedures/inMem_GetProductsPriceByPK.sql +++ /dev/null @@ -1,39 +0,0 @@ ------------------------------------------------------------------- --- -- --- File: usp_GetProductsPriceByPK.SQL -- --- Version: 0.0.0-1006 -- --- -- ------------------------------------------------------------------- -SET QUOTED_IDENTIFIER OFF -GO - -SET ANSI_NULLS ON -GO - -USE InMemDB -GO - -IF EXISTS ( SELECT name FROM sysobjects WHERE name = 'usp_GetProductsPriceByPK' ) - DROP PROCEDURE usp_GetProductsPriceByPK -GO - -CREATE PROCEDURE dbo.usp_GetProductsPriceByPK -( @LOWER_PK bigint, - @UPPER_PK bigint) -WITH NATIVE_COMPILATION, EXECUTE AS OWNER, SCHEMABINDING -AS BEGIN ATOMIC WITH -( - TRANSACTION ISOLATION LEVEL = SNAPSHOT, - LANGUAGE = N'us_english' -) - SELECT PR_ID, - PR_NAME, - PR_TYPE, - PR_DESC, - PR_PRICE - FROM dbo.Products - WHERE PR_ID BETWEEN @LOWER_PK AND @UPPER_PK - ORDER BY PR_PRICE ASC -END - -GO