دسته بندی ها
18:18 1399/09/04

کم کردن حجم فایلهای دیتابیس Sql Sevrer

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 518     رتبه کاربر : 4
دسته بندی : Sql Server

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 7112
هوش مصنوعی

پاسخ هوش مصنوعی

برای کاهش حجم فایل های دیتابیس SQL Server، می توانید از روش های زیر استفاده کنید:

1. پاک سازی داده های غیرضروری: ابتدا مطمین شوید که داده های غیرضروری مانند رکوردهای قدیمی و اطلاعات آزمایشی را حذف کرده اید.

2. فشرده سازی دیتابیس: شما می توانید با استفاده از دستور DBCC SHRINKFILE فایل های داده (MDF) و فایل های گزارش (LDF) را فشرده کنید.

برای مثال:

USE [نام_دیتابیس]
GO
DBCC SHRINKFILE (نام_فایل_داده, 0)
GO

برای فشرده سازی فایل گزارش می توانید از:

DBCC SHRINKFILE (نام_فایل_گزارش, 0)
GO

3. تنظیم بصری اندازه داده ها: با توجه به شیوه نگهداری داده ها در SQL Server، می توانید از گزینه ها و تکنیک های مختلف بهینه سازی استفاده کنید تا از رشد سریع سایز جلوگیری کنید.

4. تنظیم روند پشتیبان گیری و بازیابی: اطمینان حاصل کنید که پشتیبان گیری با فرکانس مناسب انجام می شود و فایل های گزارش به درستی مدیریت می شوند.

5. بررسی تنظیمات اتوماتیک: اگر از تنظیمات اتوماتیک استفاده می کنید، می توانید آن ها را به نحوی تغییر دهید که کنترل بیشتری بر روی رشد دیتابیس داشته باشید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 19:28 1399/09/04

کم کردن حجم فایلهای دیتابیس Sql Sevrer

اگر اطلاعات داخل دیتابیس شما زیاد نیست ولی حجم دیتابیس شما زیاد هست و فضای زیادی رو روی سرور شما میگیره این حجم احتمال زیاد Total Size هست. یعنی حداکثر فضایی که دیتابیس شما میتونه داشته باشه. به عبارتی ممکنه حجم اطلاعات شما 20 مگابایت باشه ولی حداکثر فضایی که دیتابیس شما میتونه داشته باشه 370 مگابایت هست و همین مقدار فضا رو هم از هاست شما اشغال میکنه. اما روشهایی هست که شما میتونید این حجم رو کم کنید و فضای بیشتری از سرور یا هاست خودتون رو آزاد کنید.

 

کاهش حجم دیتابیس توسط Shrink کردن

یکی از راههایی که تا حد زیادی حجم دیتابیس شما رو کم میکنه Shrink کردن (آب رفتن) دیتابیس هست. در این روش بسیاری از فضاهای خالی فایلهای دیتابیس حذف میشه و تا حد زیادی دیتابیس شما کم حجم میشه.

 

چگونه دیتابیس را Shrink کنیم

برای این کار روی نام دیتابیس خود در Sql Server کلیک راست کنید، سپس گزینه Task و Shrink و DataBase را انتخاب کنید.

shrink کردن دیتابیس

 

خب حالا در فرم Shrink Database روی دکمه Ok کلیک کنید. در تصویر زیر بخشی به نام Available free space می بینید. تقریبا دیتابیس شما به این مقدار فضای اضافی دارد.

آموزش شرینک کردن دیتابیس

خب بعد از زدن دکمه Ok می بینید که حجم اشغالی فایلهای دیتابیس شما چقدر کاهش پیدا می کند.

 

کاهش حجم جداول و افزایش سرعت جداول با Rebuild کردن ایندکس

علاوه بر شرینک کردن دیتابیس که فضای خالی دیتابیس را از بین می برد و باعث می شود تا حد زیادی حجم دیتابیس شما کاهش پیدا کند برای کاهش حجم جداول می تونید Index ها رو سر و سامان بدید. برای این کار جداولی که تعداد رکوردهای زیادی دارن رو انتخاب کنید و باز کنید.

 

ایندکس گذاری در sql server

طبق تصویر بالا می بینید که هر ایندکس 2 گزینه دارد. Rebuild کردن و Reorgnize کردن. گزینه Rebuild کردن باعث میشه ایندکس کاملا حذف بشه و مجدد ایجاد بشه. با این کار بهم ریختگی یا fragment ایندکس از بین میره. ولی خب این کار کمی خطرناکه ممکنه ایندکس حذف بشه و دوباره ساخته نشه !!!

بنابراین سعی کنید بیشتر از Reorgnize استفاده کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: 1635 رتبه: 2
پاسخ دهنده : saedbfd 12:13 1400/04/09

کم کردن حجم Log ها در Sql Server

 

دقت کنید گاهی اوقات به دلیل اینکه تراکنش های دیتابیس شما زیاد میشه حجم Log های دیتابیس شما بسیار زیاد و زیادتر میشه. در این موارد روی نام دیتابیس در Sql Server کلیک راست کنید و گزینه Properties رو بزنید و به سربرگ Files برید. در اینجا حجم Log شما مشخص هست.

کاهش حجم log ها در sql server

 

خب همونطوری که میبینید در تصویر بالا حجم 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'

و نتیجه در تصویر زیر مشخصه

 

decrease log file in sql server

می بینید که 16 مگابایت استفاده شده است ولی حدود 240 مگابایت اشغال شده. پس میتونیم فضای اضافی رو کم کنیم. در اینجا چون 16 مگابایت استفاده شده ما یک فضای 24 مگابایتی در نظر میگیریم. دستور زیر رو اجرا کنید.

 

DBCC SHRINKFILE('porsNetDb_log',24)

 

بعد از اجرای دستور بالا فضای اضافی اشغال شده آزاد میشه و به اندازه 24 مگابایت برای Log ها در نظر گرفته میشه.

به این پاسخ امتیاز بدهید    1
امتیاز: 1664 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود