جستجوجستجو
تبلیغات
تبلیغات متنی
فروشگاه کامپیوتر فیض

نازلترین قیمت بازار در حوزه کامپیوتر و لوازم جانبی

تبلیغات
تبلیغات

پرسشکده > دسته بندی نشده
پیوند همیشگی پرسش
    
چگونه سايز ديتابيس اس کيو ال را کاهش دهيم؟ فضاي خالي فايل Microsoft SQL Server Database چگونه از بين مي رود؟
hamed در تاریخ 31 تیر ماه سال 1389 در ساعت 04:10 ب.ظ این سوال را پرسیده است.

تعداد بازدید: 6881
گزارش تخلف
پیوند همیشگی پاسخ
دستور DBCC SHRINKDATABASE برای کاهش حجم دیتابیس استفاده می شود. نحوه استفاده از این دستور بدین شکل است:

 DBCC SHRINKDATABASE
(database_name | database_id | 0
[ ,target_percent ]
[ , { NOTRUNCATE | TRUNCATEONLY } ] )
[ WITH NO_INFOMSGS ]

همانطور که مشاهده می کنید دیتابیس مورد نظر را می توان با نام (database_name) یا شناسه (database_id) آن مشخص کرد. اگر برای این پارامتر مقدار صفر وارد کنید، عملیات کاهش حجم بر روی دیتابیس فعلی انجام خواهد شد.

پارامتر target_percent اختیاری است. با استفاده از این پارامتر می توانید درصدی از فضای آزاد که می خواهید بعد از کاهش حجم در دیتابیس باقی بماند را مشخص کنید.

با استفاده از گزینه NOTRUNCATE کاهش حجم تنها با انتقال صفحات تخصیص یافته انتهای فایل به فضای تخصیص نیافته ابتدای فایل انجام می شود. در این حالت فضای آزاد دیتابیس به سیستم عامل بازگردانده نمی شود. بنابراین اندازه فایل در این حالت تعییر نمی کند در واقع در ظاهر هیچ عملیات کاهش حجمی صورت نگرفته است.

با استفاده از گزینه TRUNCATEONLY فضای آزاد انتهای دیتابیس به سیستم عامل بازگردانده می شود. در این حالت هیچ انتقال در داخل دیتابیس صورت نمی گیرد. در این حالت پارامتر target_percent درنظر گرفته نمی شود.

با بکارگیری WITH NO_INFOMSGS در دستور DBCC SHRINKDATABASE پیام ها با درجه بین صفر تا ده نادیده گرفته می شوند.

مثال:
DBCC SHRINKDATABASE (UserDB, 10);
GO

DBCC SHRINKDATABASE (AdventureWorks2008R2, TRUNCATEONLY);
GO

برای کاهش حجم تمام فایل های داده و لاگ یک دیتابیس مشخص می توان از دستور DBCC SHRINKDATABASE استفاده کرد. اگر بخواهید اندازه یک فایل داده یا لاگ خاص را کاهش دهید، باید از دستور DBCC SHRINKFILE استفاده کنید.

برای مشاهده میزان فضای آزاد (تخصیص نیافته) یک پایگاه داده می توانید رویه sp_spaceused فراخوانی کنید. عملیات DBCC SHRINKDATABASE می تواند در هر لحظه متوقف شود. در این صورت کارهای انجام شده، حفظ خواهد شد.

سایز دیتابیس نمی تواند کوچک تر از یک مقدار حداقل باشد. این مقدار کمینه اندازه ای است که هنگام ساخت دیتابیس تعیین می شود. البته این مقدار با دستورات ALTER DATABASE و DBCC SHIRNKFILE قابل تغییر است. به عنوان مثال اگر یک پایگاه داده در ابتدا با حجم 10 مگابایت ساخته شود و به تدریج اندازه آن به 100 مگابایت برسد، حجم این دیتابیس با استفاده از این دستورات کمتر از 10 مگابایت نخواهد شد، حتی اگر تمام داده های موجود در آن پاک گردد.

اجرای DBCC SHRINKDATABASE بدون مشخص کردن گزینه های NOTRUNCATE و TRUNCATEONLY معادل اجرای آن با گزینه NOTRUNCATE و در ادامه اجرای آن با گزینه TRUNCATEONLY می باشد.

برای کاهش حجم، لزومی ندارد دیتابیس در حالت تک کاربره قرار داشته باشد؛ بنابراین هنگام کاهش اندازه سایر کاربران (از جمله دیتابیس های سیستمی) می توانند با دیتابیس کار کنند.

توجه داشته باشید که هنگام پشتیان گیری از پایگاه داده نمی توان حجم آن را کاهش داد. به همین ترتیب همزمان با کاهش حجم نیز نمی توان از دیتابیس backup گرفت.

پرسشکده در تاریخ 31 تیر ماه سال 1389 در ساعت 04:33 ب.ظ به این سوال جواب داده است.





پرسش های مرتبط:
من يک storedprocedure در SQL Server نوشتم. اين استورد پراسجر يک پارامتر خروجي از نوع uniqueidentifier دارد. مشکل اينجاست که وقتي اين storedprocedure را در محيط server explorer ويرايشگر visual studio اجرا مي کنم و يا در query analyzer اجرا مي کنم، همه چيز درست اجرا ميشود. اما وقتي از طريق کد C# اين Storedprocedure را فراخواني مي کنم پيغام خطاي Operand type clash: int is incompatible with uniqueidentifier نمايش داده مي شود و صفحه APS.NET کار نمي کند؟
چگونه مي توان در زبان برنامه نويسي C# يک عکس را در يک stream ذخيره کرد يا بصورت آرايه از بايت ها درآورد؟
چگونه می توان با کد C# یک فایل صوتی را در یک RichTextBox ذخیره کرد؟
فلش دوستم ويروسي شده و يک سري از فايل ها و پوشه هاش مخفي (hidden) شدن و نميشود آنها را به حالت عادي برگرداند. وقتي روي اين فايل ها راست کليک مي کنم چک باکس Hidden غيرفعال است. چگونه مي توانم آنها را از حالت مخفي درآورم؟
در زبان برنامه نويسي #C ، چگونه مي توان يک Image را lock کرد و از مشکل object is currently in use else ever جلوگيري کرد؟

چاپ اعلان ارسال برای دوستان مشترک شوید اضافه به دوست داشتنی ها پرسشکده خانه من باشد


کلیدواژه



 
Poseshkadeh on Google+ Porseshkadeh on Twitter Porseshkadeh on Facebook Porseshkadeh RSS Feed