آشنایی با In-Memory OLTP

چاپ

آموزش پیشرفته SQL Server (جلسه سوم) - آشنایی با In-Memory OLTP

آشنایی با In-Memory OLTP، قسمتی از آموزش پیشرفته SQL Server است، پیشنهاد می شود قبل از مطالعه ی آشنایی با In-Memory OLTP، قسمت های قبلی را مطالعه فرمایید.


In-Memory OLTP چیست؟

هدف: امکان تعریف Stored Procedure روی Memory Optimize Table ها.

ترکیبی از Memory Optimize Table ها و Native Compile Stored Procedure ها می باشد و به دلیل اینکه Stored Procedure های ایجاد شده روی Memory Optimize Table ها به دلیل ماهیت این جداول نمی توانند در پایگاه داده ذخیره شوند، به همین دلیل در ابتدای ایجاد کمپایل شده و به صورت dll ذخیره می شوند و با هر بار فراخوانی این فایل dll مورد استفاده قرار می گیرد. موارد زیر را می توان در مورد In-Memory OLTP بیان نمود:


 معماری In-Memory OLTP

معماری In-Memory OLTP به شکل زیر است:آشنایی با In-Memory OLTP

هر درخواستی که به Sql Server داده می شود از طریق پروتکل TDS به آن می رسد و این پروتکل بسته به اینکه نوع درخواست از نوع Native است یا Interpret مسیر حرکت را تعیین می نماید.


مزایای  استفاده از In-Memory OLTP:


نحوه ایجاد In-Memory OLTP

در مرحله اول باید پایگاه دادهای را با ساختاری که استفاده از In-Memory OLTP را پشتیبانی کند را داشته باشیم برای اینکار طبق دستورات زیر این پایگاه داده را ایجاد می نماییم:

آشنایی با In-Memory OLTP

CREATE DATABASE HKDB
ON
PRIMARY(NAME = [HKDB_data],
FILENAME = 'Q:\data\HKDB_data.mdf', size=500MB),
FILEGROUP [SampleDB_mod_fg] CONTAINS MEMORY_OPTIMIZED_DATA
(NAME = [HKDB_mod_dir],
FILENAME = 'R:\data\HKDB_mod_dir'),
(NAME = [HKDB_mod_dir],
FILENAME = 'S:\data\HKDB_mod_dir')
 LOG ON (name = [SampleDB_log], Filename='L:\log\HKDB_log.ldf', size=500MB)

در صورتیکه پایگاه داده از قبل موجود بود کافیس با استفاده از دستور زیر آنرا برای داشتن In_Memory OLTP تغییر دهیم:

آشنایی با In-Memory OLTP

ALTER DATABASE AdventureWorks2012
ADD FILEGROUP hk_mod CONTAINS MEMORY_OPTIMIZED_DATA;
11

GO
ALTER DATABASE AdventureWorks2012
ADD FILE (NAME='hk_mod', FILENAME='c:\data\hk_mod')
TO FILEGROUP hk_mod;
GO

در گام بعدی اقدام به ساخت جدول می کنیم:

توجهدر تعریف جدول تنها می توان از انواع داده ای زیر استفاده نمود:

آشنایی با In-Memory OLTP

آشنایی با In-Memory OLTP

CREATE TABLE T1
(
[Name] varchar(32) not null PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 100000),
[City] varchar(32) null,
[State_Province] varchar(32) null,
[LastModified] datetime not null,
) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);

توجه: در اینجا لازم است به این نکته اشاره شود که تنها می توان قیود - Constraint زیر را برای جداول  In_Memory OLTP در نظر گرفت:

در شکل زیر ساختار هر ردیف - row در جداول In_Memory OLTP آمده است:

آشنایی با In-Memory OLTP

فیلد اول Begin Time Stamp و دوم End Time Stamp در سرآیند محدوده زمانی که ردیف مربوطه اعتبار دارد را نشان می دهند. فیلد سوم شناسه ردیف و بقیه فیلدهای آن لینکهایی به فایلهای ایندکس می باشند.

برای مطالعه بیشتر می توانید به https://msdn.microsoft.com/en-us/library/dn511014.aspx مراجعه نمایید.


در ادامه بحث آشنایی با In-Memory OLTPخواهید دید ...!

1-آشنایی کامل با In-Memory OLTP 

2- آموزش جامع نحوه انجام تنظیمات پایگاه داده برای استفاده از In-Memory OLTP همراه با مثال کاربردی


دسترسی به موارد آموزشی بالا در بسته خریداری شده

نقطه شروع بحث بالا (آشنایی با In-Memory OLTP) در ویدئو:  33:30


برای خرید و دانلود کامل آموزش پیشرفته SQL Server کلیک کنید.