نیما جمشیدی
نیما جمشیدی
خواندن ۱ دقیقه·۴ سال پیش

مفهوم in-memory Tempdb در SQL Server

مفهوم in-memory database از نسخه SQL Server 2014  مطرح و در نسخه 2016 کامل تر شد، این تعریف به یک قابلیت  خاص اشاره نمیکنه و در هر نسخه جدیدی  امکانات بیشتری بهش افزوده میشه، در نسخه 2019 قابلیت جدیدی بر اساس همین مفهوم ارائه شده با عنوان Memory-Optimized Tempdb ، در واقع  امکان تنظیم این ویژگی به صورت Metadata  فراهم شده.

با اجرا کوئری

ALTER SERVER CONFIGURATION SET MEMORY_OPTIMIZED TEMPDB_METADATA = ON;

دیتابیس Tempdb به صورت In-memory  در کل Instance در دسترس قرار میگیره و از حالت سنتی ذخیره شده در دیسک فیزیکی خارج میشه . تو تعریف بالا  به دو مفوم  Tempdb و In-memory   اشاره کردم  ، شرح مفهوم In-memory  نیاز به مطلب جداگانه ای داره  اما توضیح مختصری درباره Tempdb :

به ازاء هر Instance   نصب شده ، یک سری دیتابیس های سیستمی هم ایجاد میشن ، یکی از اونها Tempdb هست  وظایف:  نگهداری Temporary user objects : object های موقت ایجاد شده توسط کاربر شامل  temporary tables indexes ، , temporary stored procedures cursor

نگهداری  : Internal objects  های داخلی که توسط engine SQL ایجاد شده   و شامل  work file و work table   ها میشن. (هنگام اجرا کوئری، SQL نیاز داره تا برای نگهداری بخشی از محاسبه انجام شده این دو مورد رو ایجاد کنه مثلا برای عملیات های hash join , hash aggregate )

مفهوم Version store: به زبان ساده SQL Server  به ازاء هر بروزرسانی در سطح رکورد تا مدتی رکورد رو به عنوان version  در Tempdb نگهداری میکنه و بر اساس قواعدی اون ها رو با دیتا اصلی جایگزین میکنه (این موضوع با Dirty Page که قبلا درمورد حرف زدیم متفاوته و به مفهوم Dirty read   و     Isolation Level  مربوط میشه )

منبع :

docs.microsoft.com

sql serverپایگاه دادهمموری
مدیر پایگاه داده در ایپاد
شاید از این پست‌ها خوشتان بیاید