PDA

View Full Version : عدم کاهش حجم بانک بعد از پاک کردن عکس ها



مهدی رحیم زاده
جمعه 15 خرداد 1388, 11:00 صبح
سلام من یک دیتابیس دارم که عکی توی اون ذخیره می کنم . با حذف رکورد های ذخیره شده ، حجم بانک تغییری نمی کنه!
چکار کنم که با حذف اطلاعات حجم بانک اطلاعاتی کم بشه ؟
با تشکر

مهدی رحیم زاده
جمعه 15 خرداد 1388, 19:38 عصر
دوستان به این مشکل بر نخوردن؟

hassan razavi
جمعه 15 خرداد 1388, 23:04 عصر
حتما بانکتون Access هست. برای اینکار باید Database تون رو Campact & Repair کنید.

http://www.codeproject.com/KB/database/mdbcompact_latebind.aspx

مهدی رحیم زاده
جمعه 15 خرداد 1388, 23:12 عصر
حتما بانکتون Access هست.
نه اتفاقا SQL 2000 اما مشکلی که گفتمو داره !!!

aahamir
شنبه 16 خرداد 1388, 12:07 عصر
shirink رو امتحان كن(دیتابیس رو shirink kon)فكر كنم درست بشه

In_Chan_Nafar
شنبه 16 خرداد 1388, 12:17 عصر
حتما بانك را Shrink‌كنيد چون SQL به طور عادي وقتي داده اي را پاك مي كنيد هنگام درج داده اي جديد به دنبال جاهاي خالي كه پس از حذف ايجاد شده نمي رود (چون اين كار بار زيادي بر روي سرور مي گذارد) بنابراين بانكتون را هنگامي كه سرور بار زيادي ندارد Shrink كن مي توني با Job اين كار را تنظيم كني براي ساعات شب و...

مهدی رحیم زاده
شنبه 16 خرداد 1388, 14:56 عصر
shirink رو امتحان كن
میشه بگید طور باید این کار رو انجام بدم ؟
با تشکر

شفیعی
سه شنبه 18 بهمن 1390, 07:52 صبح
سلام
میشه بگید چطوری میشه از داخل برنامه بانک را SHRINKING کرد ( بانک SQL )

shadi khanum
سه شنبه 18 بهمن 1390, 08:24 صبح
سلام
میشه بگید چطوری میشه از داخل برنامه بانک را SHRINKING کرد ( بانک SQL )
دوست عزی عبارت SHRINKDATABASE رو تو خود help اس کیو ال جستجو کنید، همه حالت ها و نمونه هاش هست..
من خودم از این استفاده میکنم:
DBCC SHRINKDATABASE (UserDB, 10);

hamid.karimy
سه شنبه 18 بهمن 1390, 09:40 صبح
روی دیتابیس کلیک راست کنید و مسیر زیر را طی کنید.
Tasks>Sherink>DataBase
و بدون اعمال تغییرات دیگری ok کنید.
دوستان توجه داشته باشند بیشتر حجم اشغال شده دیتابیس مربوط به فایل لاگ دیتابیس می شود نه خود فایل mdf . بیشتر تاثیر shrink در حجم فایل،پاک کردن فایل لاگ هست تاثیر دیگه shrink مانند دیفرگمنت ویندوز،مرتب کردن فالها و استفاده از فضای خالی هستش که تاثیر زیادی تو سرعت داره

m110_110
سه شنبه 18 بهمن 1390, 13:42 عصر
با سلام

دوستان توجه داشته باشند بیشتر حجم اشغال شده دیتابیس مربوط به فایل لاگ دیتابیس می شود نه شرینک
دقيقا من اين مشكل رو دارم
يك بانكي دارم كه فايل لاگش خيلي حجمش زياد شده و بسيار بالاست ولي نمي دونم چطور مي تونم هم ازش استفاده كنم و هم اينكه حجمش رو كم كنم
اگر ميشه كمي كمك بفرماييد
ممنون

shadi khanum
سه شنبه 18 بهمن 1390, 19:22 عصر
دوست عزیز اگه برای bussiness کاریت مشکلی پیش نمیاد میتونی log رو هم shrink و خالی کنی...

Reza_Yarahmadi
سه شنبه 18 بهمن 1390, 20:33 عصر
يك بانكي دارم كه فايل لاگش خيلي حجمش زياد شده و بسيار بالاست ولي نمي دونم چطور مي تونم هم ازش استفاده كنم و هم اينكه حجمش رو كم كنم
یک نگاه به پست زیر بندازید فکر کنم بتونه در این زمینه یک مقدار کمکتون کنه.
http://barnamenevis.org/showthread.php?279222-MS-SQL-Server-2005-Administration&p=1241182&viewfull=1#post1241182

mhsmity
سه شنبه 18 بهمن 1390, 21:10 عصر
سلام آقا جان بنده هم همین مشکل رو داشتم.
که با شرینگ کردن حل شد.
فقط یه سوال برام پیش اومده چه واقعی باید از دستور زیر استفاده کنیم ؟
DBCC SHRINKDATABASE (UserDB, 10);

Reza_Yarahmadi
سه شنبه 18 بهمن 1390, 22:27 عصر
فقط یه سوال برام پیش اومده چه واقعی باید از دستور زیر استفاده کنیم ؟
بطور معمول زمانی که روی دیتابیس حذف و ویرایش زیادی رخ بده حجم دیتابیس و لاگ فایل زیاد میشه این افزایش هم بستگی به تعداد اعمال مذکور و نوع داده های مورد استفاده داره. هر از چند گاهی که تفاوت حجم اصلی داده ها و اندازه فایلهای دیتابیس زیاد بشه ، پیشنهاد میشه این کار رو انجام بدید.

mhsmity
جمعه 21 بهمن 1390, 18:30 عصر
وقتی می خوام این دستور DBCC SHRINKDATABASE (UserDB, 10); ور روی پایگاه داده ام مثل بقیه دستواراتم اجرا کنم خطا می دهد.
Could not find database ''E:\Application2\bin\Release\Mdf\SqlMdf.Mdf''. The database either does not exist, or was dropped before a statement tried to use it. Verify if the database exists by querying the sys.databases catalog view.
Changed database context to 'master'.

in_chand_nafar
جمعه 21 بهمن 1390, 21:38 عصر
نكته اي كه بايد بعد Shrink ديتا فايل در نظر گرفت اينكه اينكار پدر Data File رو (خصوصا پدر ايندكس باعث بوجود آومدن Fragmentation ميشه ) در مياره و شما بايد بعد از اون كار ايندكس ها را Rebuild‌كنيد مي توانيد از اين دستور استفاده كنيد
--مدل 2000
--در 2005 و 2008 كار مي كند
EXEC SP_MSFOREACHTABLE @COMMAND1="PRINT '?' DBCC DBREINDEX('?')"
GO
--مدل 2005,2008
EXEC SP_MSFOREACHTABLE @COMMAND1="PRINT '?' ALTER INDEX ALL ON ? REBUILD"
GO


در ضمن از دوستان خواهش مي كنم اين نوع سوالات چون با مبحث بانك اطلاعاتي در ارتباط مي باشد در تالارهاي مربوط به اون پرسيده شود تا راهنمايي بيشتر و... از سوي دوستان انجام شود
موفق باشيد