Skip to content

Commit 0bd4589

Browse files
committed
Improvement SQL Server 2014 In-Memory script
1 parent df74e06 commit 0bd4589

File tree

1 file changed

+36
-22
lines changed

1 file changed

+36
-22
lines changed

Scripts/IN_Memory_Example_2014.sql

Lines changed: 36 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,28 @@ END;
1616
1717
CREATE DATABASE [@databaseName]
1818
CONTAINMENT = NONE
19-
ON PRIMARY
19+
ON PRIMARY
2020
(NAME = N''@databaseName'', FILENAME = N''@databaseFilePath@databaseName.mdf'', SIZE = 64MB, MAXSIZE = UNLIMITED, FILEGROWTH = 64MB),
2121
FILEGROUP [___DATABASE_NAME___] CONTAINS MEMORY_OPTIMIZED_DATA DEFAULT
2222
( NAME = N''@databaseName_mod'', FILENAME = N''@databaseFilePath@databaseName_mod'', MAXSIZE = UNLIMITED)
23-
LOG ON
23+
LOG ON
2424
( NAME = N''@databaseName_log'', FILENAME = N''@databaseFilePath@databaseName_log.ldf'', SIZE = 64MB, MAXSIZE = 2048MB, FILEGROWTH = 64MB);
2525
2626
ALTER DATABASE [@databaseName] SET COMPATIBILITY_LEVEL = 120;
27+
';
28+
29+
SET @tsqlStatement = REPLACE(@tsqlStatement, '@databaseName', @databaseName);
30+
SET @tsqlStatement = REPLACE(@tsqlStatement, '@databaseFilePath', @databaseFilePath);
2731

32+
IF @debug = 1 PRINT(@tsqlStatement)
33+
ELSE
34+
EXEC sp_executesql @tsqlStatement;
35+
36+
37+
SET @tsqlStatement = '
2838
USE [@databaseName];
39+
--UNCOMMENT GO Statement if you want to execute statements after printing in debug mode!!!
40+
--GO
2941
3042
-- configure recommended DB option
3143
ALTER DATABASE CURRENT SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT=ON;
@@ -38,24 +50,23 @@ CREATE TABLE dbo.table1(
3850
WITH (MEMORY_OPTIMIZED=ON);
3951
4052
-- non-durable table
41-
CREATE TABLE dbo.temp_table1
42-
( c1 INT IDENTITY PRIMARY KEY NONCLUSTERED,
43-
c2 NVARCHAR(4000))
44-
WITH (MEMORY_OPTIMIZED=ON,
45-
DURABILITY=SCHEMA_ONLY);
53+
CREATE TABLE dbo.temp_table1(
54+
c1 INT IDENTITY PRIMARY KEY NONCLUSTERED,
55+
c2 NVARCHAR(4000)
56+
)
57+
WITH (MEMORY_OPTIMIZED=ON, DURABILITY=SCHEMA_ONLY);
4658
4759
-- memory-optimized table type
48-
CREATE TYPE dbo.tt_table1 AS TABLE
49-
( c1 INT IDENTITY,
50-
c2 NVARCHAR(4000),
51-
is_transient BIT NOT NULL DEFAULT (0),
52-
INDEX ix_c1 HASH (c1) WITH (BUCKET_COUNT=1024))
53-
WITH (MEMORY_OPTIMIZED=ON);
54-
55-
CREATE TABLE dbo.InMemTable1
56-
(
57-
keyColumn INT IDENTITY PRIMARY KEY NONCLUSTERED
58-
,description CHAR(100) NOT NULL
60+
CREATE TYPE dbo.tt_table1 AS TABLE(
61+
c1 INT IDENTITY,
62+
c2 NVARCHAR(4000),
63+
is_transient BIT NOT NULL DEFAULT (0),
64+
INDEX ix_c1 HASH (c1) WITH (BUCKET_COUNT=1024))
65+
WITH (MEMORY_OPTIMIZED=ON);
66+
67+
CREATE TABLE dbo.InMemTable1(
68+
keyColumn INT IDENTITY PRIMARY KEY NONCLUSTERED
69+
, description CHAR(100) NOT NULL
5970
)
6071
WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
6172
@@ -69,15 +80,14 @@ VALUES
6980
,(REPLICATE(''F'', 100));
7081
';
7182

72-
SET @tsqlStatement = REPLACE(@tsqlStatement, '@databaseName', @databaseName);
73-
SET @tsqlStatement = REPLACE(@tsqlStatement, '@databaseFilePath', @databaseFilePath);
83+
SET @tsqlStatement = REPLACE(@tsqlStatement, '@databaseName', @databaseName);
7484

7585
IF @debug = 1 PRINT(@tsqlStatement)
7686
ELSE
7787
EXEC sp_executesql @tsqlStatement;
7888

7989

80-
--https://stackoverflow.com/a/793362/2298061
90+
-- https://stackoverflow.com/a/793362/2298061
8191
DECLARE @UseAndExecStatment NVARCHAR(4000);
8292
SET @UseAndExecStatment = N'USE [' + @databaseName + N']; EXEC sp_executesql @tsqlStatement';
8393

@@ -92,5 +102,9 @@ BEGIN ATOMIC WITH (TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N''us_engl
92102
END;
93103
--EXECUTE dbo.native_sp;';
94104

105+
IF @debug = 1 PRINT(@tsqlStatement)
106+
ELSE
107+
BEGIN
95108
EXEC sp_executesql @UseAndExecStatment,
96-
N'@tsqlStatement NVARCHAR(MAX)', @tsqlStatement = @tsqlStatement
109+
N'@tsqlStatement NVARCHAR(MAX)', @tsqlStatement = @tsqlStatement;
110+
END;

0 commit comments

Comments
 (0)