Blog Pages

Enable database and/or table to be in-memory

 use master

go


-- Alter database to be "in-memory"

ALTER DATABASE [itai] 

SET MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = ON;


ALTER DATABASE [itai] 

ADD FILEGROUP itai_mod CONTAINS MEMORY_OPTIMIZED_DATA;


ALTER DATABASE [itai] 

ADD FILE (name='itai_IM', filename='D:\rdsdbdata\DATA\itai_IM') 

TO FILEGROUP [itai_mod];


------------------------------------------------------------------------

use itai

go


-- Create an "in-memory" table

CREATE TABLE dbo.InMemoryExample

(

    OrderID   INTEGER   NOT NULL   IDENTITY

        PRIMARY KEY NONCLUSTERED,

    ItemNumber   INTEGER    NOT NULL,

    OrderDate    DATETIME   NOT NULL

)

    WITH

        (MEMORY_OPTIMIZED = ON,

        DURABILITY = SCHEMA_AND_DATA);

GO


A script that make high CPU utilization

USE master


SELECT MyInt = CONVERT(BIGINT, o1.object_id) + CONVERT(BIGINT, o2.object_id) + CONVERT(BIGINT, o3.object_id)

INTO #temp

FROM sys.objects o1

JOIN sys.objects o2 ON o1.object_id < o2.object_id

JOIN sys.objects o3 ON o1.object_id < o3.object_id


SELECT SUM(CONVERT(BIGINT, o1.MyInt) + CONVERT(BIGINT, o2.MyInt))

FROM #temp o1

JOIN #temp o2 ON o1.MyInt < o2.MyInt