کاهش حجم دیتابیس در Sql Server

کاهش حجم دیتابیس در Sql Server

هر دیتابیسی که در Sql server ایجاد می شود، دارای دو فایل اصلی می باشد. فایل اول، فایل اصلی است که داده‌ها روی آن نگهداری و ذخیره می‌شوند (فایلی با پسوند mdf.) دومین فایل مربوط به ثبت وقایع اتفاق افتاده روی پایگاه داده است و هر تراکنشی که در پایگاه داده انجام می‌شود در این فایل ذخیره می‌شود (فایلی با پسوند ldf می باشد. حجم فایل ldf با توجه به اینکه بصورت لحظه ای و به ازای هر تغییر در حال افزایش می باشد، ممکن است باعث بالابردن ناگهانی و غیر طبیعی حجم دیتابیس شما شود و زمانی که کل فضای هارددیسک را اشغال کند، عملا دیگر هیچ عملیاتی روی پایگاه داده انجام نمی‌شود.

از طریق عملیات shrink در Sql می توانیدفضاهای اضافی را حذف کرده و حجم دیتابیس را کاهش دهید.

در sql دیتابیس به دلیل تولید Log File ، حجم زیادی از فضای دیتابیس را اشغال خواهد کرد که با استفاده از امکان های Truncate و Shrink این log File ها حذف شده و فضای قابل توجهی از فضای دیتابیس شما آزاد خواهد شد.

جهت shrink دیتابیس از طریق Sql Server Management مراحل زیر را انجام دهید:

ابتدا به sql متصل شوید.

در لیست دیتابیس ها، برروی نام دیتابیس مورد نظر راست کلیک نموده و در زیر شاخه Tasks گزینه shrink و زیر شاخه Files را انتخاب کنید.

کاهش حجم دیتابیس در Sql Server
کاهش حجم دیتابیس در Sql Server

سپس از قسمت File Type گزینه log را انتخاب کنید.

کاهش فضا دیتابیس در Sql Server
کاهش فضا دیتابیس در Sql Server

سپس بر روی دکمه OK کلیک کنید بدین صورت حجم لاگ دیتابیس شما کاهش خواهد یافت.

از طریق اجرای query زیر نیز می توانید در sql حجم لاگ دیتابیس را کاهش دهید:

ابتدا بر روی نام دیتابیس کلیک نموده و سپس از منو بالای صفحه گزینه new query را انتخاب نمائید.

دستورات زیر را در آن کپی و اجرا نمائید.

بجای dbname نام دیتابیس مربوطه را جایگزین کنید.

Shrink کردن فایل LOG به یک حجم خاص :

Use dbname

Alter Database dbname Set Recovery Simple

DBCC SHRINKFILE (‘YOUR_LOG_NAME_log’, 1)

Alter Database dbname Set Recovery Full

دستورShrink یک دیتابیس به یک درصد خاص از فضای آزاد:

DBCC SHRINKDATABASE (DatabaseName, 10);