نمایش نتایج 1 تا 4 از 4

نام تاپیک: ثابت ماندن size دایتابیس بعد از حذف رکوردها

  1. #1

    ثابت ماندن size دایتابیس بعد از حذف رکوردها

    سلام
    دوستان عزیز من یه جدول دارم که یک فیلد داره از نوع image
    من فایلهامو بصورت باینری تو دیتابیسم ذخیره میکنم
    در اینجا دو تا سئوال برام پیش اومده:
    1- اندازه نهایی فیلد image در الصاق فایلها چقدره؟(یعنی من حداکثر میتونم فایل با چه اندازه ای رو بهش الصاق کنم؟)
    آیا فیلدی بیشتر از image وجود داره؟
    2- چرا وقتی در جدولم یک سری از رکوردها با حجم زیاد رو حذف میکنم اندازه دیتابیسم ثایت میمونه و کم نمیشه؟
    ممنون میشم اگر به سئوالاتم پاسخ بدید
    ممنون ومتشکر
    یاعلی

  2. #2

    نقل قول: ثابت ماندن size دایتابیس بعد از حذف رکوردها

    اندازه نهایی فیلد image در الصاق فایلها چقدره؟(یعنی من حداکثر میتونم فایل با چه اندازه ای رو بهش الصاق کنم؟)
    آیا فیلدی بیشتر از image وجود داره؟
    حداکثر حجم فیلدهای باینری 2,147,483,647 بایت است. تا جایی که میدونم هنوز نوعی بالاتر از این حجم اضافه نشده (البته این حرف تا SQL Server 2008 صادق است). بدلیل اینکه نوع داده image قراره حذف بشه ، مایکروسافت توصیه کرده از نوع varbinary استفاده بشه.
    چرا وقتی در جدولم یک سری از رکوردها با حجم زیاد رو حذف میکنم اندازه دیتابیسم ثایت میمونه و کم نمیشه؟
    چیزی که میگم یک حدس بیشتر نیست!! بدلیل اینکه فیلدهای باینری (حجیم) بین رکوردها ذخیره نمیشه که با حذف ، توسط رکود دیگه ای جایگزین بشه ، حذف اونها باعث ایجاد نوعی Gap در فایل میشه. راه حلی که برای این مورد میشه در نظر گرفت Shirink کردن دیتابیس است.

  3. #3

    نقل قول: ثابت ماندن size دایتابیس بعد از حذف رکوردها

    چیزی که میگم یک حدس بیشتر نیست!! بدلیل اینکه فیلدهای باینری (حجیم) بین رکوردها ذخیره نمیشه که با حذف ، توسط رکود دیگه ای جایگزین بشه ، حذف اونها باعث ایجاد نوعی Gap در فایل میشه. راه حلی که برای این مورد میشه در نظر گرفت Shirink کردن دیتابیس است.
    سلام
    ممنون از راهنماییتون
    میشه یه مقدار بیشتر توضیح بدید (منظور از Shirink کردن دیتابیس )
    یاعلی

  4. #4

    نقل قول: ثابت ماندن size دایتابیس بعد از حذف رکوردها

    قبل از هر چیزی بابت غلط املایی که داشتم معذرت میخوام. Shrink درست است نه Shirink
    بر اثر حذف و اضافه شدن رکوردها فضاهای خالی بین رکورد ها ایجاد میشه که باعث حجیم شدن دیتابیس میشه. با انجام Shrink روی دیتابیس (و یا هر یک از فایلهای دیتابیس) این حجم بی استفاده از بین رکوردها حذف میشه و رکوردها پشت سر هم قرار میگیرند. در صورتیکه روی جداول ایندکس گذاشتید توصیه میشه بعد از Shrink ، ایندکس ها رو Rebuild کنید.
    برای انجام Shrink هم روی دیتابیس راست کلیک و از منوی Tasks گزینه Shrink (یا Database و یا Files) و انتخاب کنید تا پنجره مربوطه باز بشه.
    و یا از دستور زیر برای این کار استفاده کنید
    DBCC ShrinkDatabase ('DatabaseName' , درصد كوچك شدن)

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •