کم کردن حجم فایلهای دیتابیس Sql Sevrer
در سایتم از یک دیتابیس Sql Server استفاده می کنم. همه چیز خوب هست ولی امروز متوجه شدم که حجم فایلهای دیتابیس خیلی زیاد شده و نزدیک به 370 مگابایت رسیده در حالی که اطلاعات دیتابیسم زیاد نیست.
لطفا راهنمایی بفرمایید چجوری میتونم حجم فایلهای دیتابیس Sql Server رو کاهش بدم.
کم کردن حجم فایلهای دیتابیس Sql Sevrer
اگر اطلاعات داخل دیتابیس شما زیاد نیست ولی حجم دیتابیس شما زیاد هست و فضای زیادی رو روی سرور شما میگیره این حجم احتمال زیاد Total Size هست. یعنی حداکثر فضایی که دیتابیس شما میتونه داشته باشه. به عبارتی ممکنه حجم اطلاعات شما 20 مگابایت باشه ولی حداکثر فضایی که دیتابیس شما میتونه داشته باشه 370 مگابایت هست و همین مقدار فضا رو هم از هاست شما اشغال میکنه. اما روشهایی هست که شما میتونید این حجم رو کم کنید و فضای بیشتری از سرور یا هاست خودتون رو آزاد کنید.
کاهش حجم دیتابیس توسط Shrink کردن
یکی از راههایی که تا حد زیادی حجم دیتابیس شما رو کم میکنه Shrink کردن (آب رفتن) دیتابیس هست. در این روش بسیاری از فضاهای خالی فایلهای دیتابیس حذف میشه و تا حد زیادی دیتابیس شما کم حجم میشه.
چگونه دیتابیس را Shrink کنیم
برای این کار روی نام دیتابیس خود در Sql Server کلیک راست کنید، سپس گزینه Task و Shrink و DataBase را انتخاب کنید.
خب حالا در فرم Shrink Database روی دکمه Ok کلیک کنید. در تصویر زیر بخشی به نام Available free space می بینید. تقریبا دیتابیس شما به این مقدار فضای اضافی دارد.
خب بعد از زدن دکمه Ok می بینید که حجم اشغالی فایلهای دیتابیس شما چقدر کاهش پیدا می کند.
کاهش حجم جداول و افزایش سرعت جداول با Rebuild کردن ایندکس
علاوه بر شرینک کردن دیتابیس که فضای خالی دیتابیس را از بین می برد و باعث می شود تا حد زیادی حجم دیتابیس شما کاهش پیدا کند برای کاهش حجم جداول می تونید Index ها رو سر و سامان بدید. برای این کار جداولی که تعداد رکوردهای زیادی دارن رو انتخاب کنید و باز کنید.
طبق تصویر بالا می بینید که هر ایندکس 2 گزینه دارد. Rebuild کردن و Reorgnize کردن. گزینه Rebuild کردن باعث میشه ایندکس کاملا حذف بشه و مجدد ایجاد بشه. با این کار بهم ریختگی یا fragment ایندکس از بین میره. ولی خب این کار کمی خطرناکه ممکنه ایندکس حذف بشه و دوباره ساخته نشه !!!
بنابراین سعی کنید بیشتر از Reorgnize استفاده کنید.
کم کردن حجم Log ها در Sql Server
دقت کنید گاهی اوقات به دلیل اینکه تراکنش های دیتابیس شما زیاد میشه حجم Log های دیتابیس شما بسیار زیاد و زیادتر میشه. در این موارد روی نام دیتابیس در Sql Server کلیک راست کنید و گزینه Properties رو بزنید و به سربرگ Files برید. در اینجا حجم Log شما مشخص هست.
خب همونطوری که میبینید در تصویر بالا حجم Log فایل ها 240 مگابایت شده. اما باید ببینیم از این 240 مگابایت چقدرش مورد نیاز هست و چقدر فضای اضافی اشغال شده هست. پس دستور زیر رو مینویسیم.
USE porsnet_porsnetdb
GO
SELECT name , filename , size / 128 Size_MB , FILEPROPERTY(name,'SpaceUsed') / 128 SpaceUsed_MB
FROM sys.sysfiles
WHERE right(filename,4) = '.ldf'
و نتیجه در تصویر زیر مشخصه
می بینید که 16 مگابایت استفاده شده است ولی حدود 240 مگابایت اشغال شده. پس میتونیم فضای اضافی رو کم کنیم. در اینجا چون 16 مگابایت استفاده شده ما یک فضای 24 مگابایتی در نظر میگیریم. دستور زیر رو اجرا کنید.
DBCC SHRINKFILE('porsNetDb_log',24)
بعد از اجرای دستور بالا فضای اضافی اشغال شده آزاد میشه و به اندازه 24 مگابایت برای Log ها در نظر گرفته میشه.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- حذف کامل یک رکورد در جدول ریلیشن شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- تفاوت اوراکل و Sql Server چیست
- جابه جایی سطر و ستون در Sql Server
- استفاده از Stored Procedure در انتیتی فریم ورک code First
- آپدیت لیستی از رکوردها در Sql Server - آپدیت گروهی اطلاعات در Sql Server
- دلیل پرش 1000 تایی خودکار فیلد identity در Sql server
- مشکل نمایش ندادن Data Type موقع تایپ در Sql Server
- کار با تاریخ شمسی وساعت (استفاده از توابع )