قابلیت autoclose در دیتابیس sql server

قابلیت autoclose در دیتابیس sql server
 
به طور کلی با فعال سازی این قابلیت زمانی که هیچ کاربری ارتباطی با دیتابیس برقرار نکرده باشد ، دیتابیس بسته شده و منابع آن آزاد می گردند. اما در صورت غیر فعال سازی آن صرف نظر از فعالیت کاربران ، دیتابیس فعال و آماده باقی می ماند.
زمانی که یک دیتابیس در دیتابیس سرور باز می شود ، جهت حفظ وضعیت به آن منابعی اختصاص داده می شود. این منابع شامل memory ، ram  و حتی disk I/O می باشد. هنگامی که یک connection به پایگاه داده ایجاد می شود ، این منابع  آماده و در حالت انتظار قرار می گیرند. اما قابلیت autoclose مشخص می کند که چگونه این منابع مدیریت شوند. درصورتی که این قابلیت فعال باشد بعد از قطع ارتباط آخرین کاربر از دیتابیس ، تمامی منابع موجود به سرور بازگردانده می شود.
ممکن است این قابلیت در نگاه اول مثبت به نظر برسد ، اما در صورتی که بلا فاصله بعد از قطعی ارتباط کاربر قبلی ، کاربر جدیدی اتصال خود را با پایگاه داده برقرار کند ، سرور پایگاه داده باید تمامی منابع مورد نیاز را مجددا به آن پایگاه داده اختصاص دهد. این آزاد شدن منابع و اختصاص مجدد آن پس از گذشت مدت زمان کوتاه ، به خودی خود موجب کند تر شدن عملکرد سیستم خواهد شد. در اکثر دیتابیس های این تنظیمات فقط موجب از بین رفتن کش داده ها و اجرای برنامه ها از حافظه ی دیتابیس می شود ، در نتیجه تمامی اطلاعات مجدد در بافر قرار خواهند گرفت و تمامی عبارات مجددا compile خواهند شد که این باعث افزایش بار ترافیک بر روی دیتابیس سرور می گردد.
با توجه به این موضوعات تنها در صورتی که کاملا مطمئن هستید که این تنظیمات برای شما مناسب است از آن استفاده نمایید ، در غیر این صورت استفاده از آن بیش از اثر بخش بودن ، مضر خواهد بود و بیش از آزاد سازی منابع موجب درگیرتر شدن آن می شود. اما در خصوص دیتابیس هایی که به ندرت مورد استفاده قرار می گیرند این قابلیت می تواند مفید و موثر باشد.
با توجه به اینکه در صورت ایجاد یک دینابیس به وسیله ی SQL express قابلیت autoclose به صورت پیش فرض فعال است ، لذا قبل از انتقال آن به سرور دیتابیس نسبت به غیر فعال سازی آن اقدام نمایید . برای غیر فعال نمودن autoclose پس از بارگزاری دیتابیس در sql server management studio همانند شکل زیر با ورود به properties دیتابیس مذکور، مقدار autoclose را برابر با false قرار دهید:
 
 
جهت مشاهده ی اطلاعات تکمیلی در خصوص غیر فعال سازی این قابلیت به این راهنما مراجعه نمایید.
 
در وب سایت رسمی مایکروسافت نیز اعلام شده که این قابلیت در نسخه های آینده ی sql server حذف خواهد شد و اعلام شده که در طراحی های وب سایت های جدید از استفاده از این قابلیت اجتناب شود و همچنین دیتابیس هایی که در حال حاضر از این قابلیت استفاده می کنند بایستی مورد بازبینی و تغییر قرار گیرند. اطلاعات تکمیلی در این خصوص را در این لینک مشاهده نمایید.