شرحی بر متدهای تغییر نوع داده و حذف لاگ برای بهینه سازی حجم پایگاه داده در Sql Server 2008
انتخاب نوع داده مناسب هنگام ایجاد دیتابیس در حجم پایگاه و در نتیجه روی کارایی آن تاثیر به سزایی دارد. درمقابل انتخاب اشتباه نوع داده (DataType ) موجب هدر رفتن فضای دیسک و پایین آمدن کارایی می شود. اما چنانچه پایگاه داده شما ایجاد و دارای محتوا نیز هست، میتوانید به کمک روش مورد اشاره در این نوشتار نسبت به بهینه سازی حجم پایگاه داده اقدام کنید. در ادامه نیز به مبحث فایل های لاگ خواهیم پرداخت و روشی برای کم کردن شدت ایجاد این فایل را ارایه می کنیم که میتواند موجب کوچک تر نگهداشتن پایگاه داده و بالتبع استفاده کمتر منابع به ویژه در سرویسهای میزبانی خواهد شد.
بهینه سازی حجم پایگاه داده با تبدیل نوع داده:
با آنکه در ظاهر امر حجم پایگاه داده تابع میزان داده های موجود در آن است اما نوع داده ها تاثیر به سزایی در آن دارد. به عنوان نمونه نگاهی به نوع داده یونیکد (Unicode) بیاندازیم.(برای کسب اطلاعات در حوزه یونیکد چیست به شما پیشنهاد می شود مقاله تخصصی ما را مطالعه نمایید.) که شامل داده های NTEXT, NCHAR , NVARCHAR می شود. این دسته از داده ها برای ذخیره هر کاراکتر از ۲ بایت استفاده می کند، و این در حالی است که داده های غیر یونیکد (NonUnicode) مانند VARCHAR, CHAT, TEXT فقط از به یک بایت به ازای هر کاراکتر نیاز دارند. داده های غیر یونیکد تنها می توانند ۲۵۶ کاراکتر متفاوت را ذخیره کنند در مقابل نوع داده یونیکد میتواند تا ۶۵،۵۳۶ الگوی ۲ بایتی ایجاد کند. به خاطر داشته باشید از داده های یونیکد غالبا برای محتوای غیر انگلیسی استفاده می شود بنابر این اگر محتوای دیتابیس به زبان انگلیسی است کافی است از نوع داده های VARCHAR, CHAT, TEXT استفاده کنید چرا که تنها به ۲۵۶ الگو نیازمند هستید. برای آشنایی بیشتر با تاثیر نوع داده بر حجم آن کافی است اشاره کنیم که در یک مورد با تغییر از یونیکد به غیر یونیکد حجم پایگاه داده به میزان ۶۰ درصد کاهش خواهد یافت. مهمتر اینکه همین میزان بهینه سازی حجم پایگاه داده موجب افزایش چشمگیر کارایی پایگاه داده می شود.
بهینه سازی حجم پایگاه داده با تبدیل داده کاراکتر:
در تغییر نوع داده، ممکن است بعضی مقادیر طولانی تر از نوع داده جدید باشند، در این مواقع این مقادیر کوتاه (truncate) خواهند شد. هم چنین اگر دو نوع داده تغییر یافته از لحاظ اندازه و گونه با هم متفاوت باشند مثلا از char(5) to varchar(5), یا char(20) to char(15) ، در این حالت collation مقدار ورودی به collation مقدار مقصد تغییر خواهد یافت. به همین ترتیب اگر یک عبارت با نوع غیرکاراکتر (noncharacter) به داده ای از نوع کاراکتر تغییر یابد collation پیشفرض پایگاه داده برای مقادیر جدی لحاظ می گردد. در اینجا ذکر این نکته لازم است که تبدیل code page در انواع char , varchar مجاز بوده و در نوع text پشتیبانی نمیشود.
بهینه سازی حجم پایگاه داده با لاگ فایل و حجم پایگاه:
دیتابیسهای Ms-SQL به ازای هربار تراکنش، جزییات داده های تبادل شده را در یک فایل لاگ نگهداری می کنند. علیرغم کاربرد این فایل در شرایط بروز خطای سیستمی (System failure)، اما میتوان آن را حذف و یا ایجاد آن را توسط فعال سازی حالت ترمیم ساده (Simple Recovery Mode) به جای حالت ترمیم کامل (Full Recovery Mode)، محدود کرد. نکته قبل توجه به ویژه برای کاربران میزبانی وب در این است که در بسیاری مواقع حجم لاگ فایل به صدها برابر حجم پایگاه داده می رسد و این امر مدیریت لاگ ها را اجتناب ناپذیر می گرداند. لازم به یادآوری است تهیه نسخه های پشتیبان به صورت دوره ای کاربران را از نگهداری لاگ ها بی نیاز خوهد کرد. [irp posts=”۴۵۶۱″ name=”Microsoft SQL Server یا MSSQL چیست و کاربرد آن”]