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

نام تاپیک: پاك كردن ركورد هاي ديتابيس اكسس و حجم ديتابيس

  1. #1

    پاك كردن ركورد هاي ديتابيس اكسس و حجم ديتابيس

    سلام
    نميدونم چرا وقتي ركورد هاي ديتابيس رو پاك ميكنم سايزش به سايز اوليه بر نميگرده ؟؟؟

  2. #2

    نقل قول: پاك كردن ركورد هاي ديتابيس اكسس و حجم ديتابيس

    سلام

    ساختار فايلهاي ديتابيس سگمنتي هست
    هر سگمنت 65kb هست كه البته تو اكسس 2003 از 96kb استفاده ميشه
    اين يعني اينكه سايز فايل شما در ابتدا 65 كيلوبايت هست و اين سايز براي تعريف جداول و ارتباطات استفاده ميشه
    مقداري هم فضا ممكنه اضافه بياد كه براي ديتاي جداول مصرف ميشه
    پس تا موقعي كه از اين فضاهاي خالي استفاده نشه، سايز فايل حتي با ورود اطلاعات، بزرگ نميشه
    اما فرض كنيم دقيقا 65 كيلوبايت مصرف شد، حالا اگر حتي 1 بايت هم اضافه كنيم، سايز بانك به اندازه يك سگمنت بزرگ ميشه و باز تا پر شدنش ديگه بزرگ نميشه
    مثل اينكه داريد املا مي نويسيد و اگر كاغذتون پر بشه، يك كاغذ كامل جديد استفاده مي كنيد


    حالا اگر اطلاعاتي از جدول را پاك كنيم، به دليل ساختار داخلي ذخيره اطلاعات و جهت افزايش سرعت، اطلاعات واقعا پاك نميشه و فقط علامت حذف شده مي خوره، يعني ركوردها وجود دارند ولي به عنوان پاك شده در نظر گرفته ميشه

    اما اگر ديتابيس رو كامپكت كنيم، اطلاعات علامت خورده واقعا حذف ميشن و سايز بانك كوچك ميشه

    ولي اگر قرار باشه با هر بار حذف اطلاعات، بانك كامپكت هم بشه سرعت برنامه خيلي پايين مياد

    واسه همين اگر سايز بانك خيلي بزرگ نيست بهتره ابتداي اجراي برنامه اون رو كامپكت كنيم يا هنگام خروج
    ولي اگر سايز خيلي بزرگ هست يا اين كار رو به انتخاب كاربر بزاريم يا به صورت اتوماتيك در مواقع بيكاري كامپيوتر


    براي كامپكت كردن هم ميشه از دستورات زير استفاده كرد


        On Error Resume Next

    dao.CompactDatabase "c:\test.mdb", "c:\testCompact.mdb"

    If Dir$("c:\testCompact.mdb") <> "" Then

    If FileLen("c:\testCompact.mdb") > 1000 Then

    Kill "c:\test.mdb"
    Name "c:\testCompact.mdb" As "c:\test.mdb"

    End If

    End If



    براي اجراي دستورات بالا حتما بايد بانك بسته باشه، يعني هيچ كنترل ديتايي اون رو باز نكرده باشه
    تو دستورات بالا، ابتدا بانك فشرده ميشه و سپس اگر فايل فشرده بدون مشكل ساخته شده بود و سايزش هم 0 نبود (بيشتر از 1000 براي اطمينان) در اينصورت بانك اصلي پاك ميشه و بانك فشرده جايگزين اون ميشه
    اگر من و شما هر كدوم يك چيز ياد داشته باشيم و به هم ياد بديم، حالا هر كدوم دو تا چيز ياد داريم ! http://www.ArminaCo.com

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

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