Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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)

AltStyle によって変換されたページ (->オリジナル) /