PDA

View Full Version : سوال: افزایش چشمگیر حجم بانک اطلاعاتی



as987498749874
چهارشنبه 10 مهر 1392, 20:48 عصر
سلام دوستان

من در یک پروژه اداری قراره اسکن نامه ها رو در اندیکاتورش ثبت کنم که با مشورت چند نفر گفتن توی بانک بزارش
حالا یه مشکل دارم به عنوان مثال 8 عکس با حجم حداکثر 1 مگ توی بانک میذارم اما حجمش حدود 30 مگ زیاد تر میشه
و اینکه بعد از پاک کردن رکورد تمام عکس ها و خالی کردن تمام جدول حجمش هیچ تغییری نمی کنه
در حالیکه حجم بانک قبل ثبت اولین عکس حدود 270-280 کیلوبایت بوده

راستی بانک اکسسه اما در اخر ساخت نرم افزار قراره روی sql پیاده بشه

مر 30

m.4.r.m
چهارشنبه 10 مهر 1392, 23:09 عصر
نه یعنی چی ؟ الان اکسس بعدا می خواد SQL بشه ؟ همون اول باید رو SQL پیاده کنی مشکلات رو بررسی کنی .
برای کم حجم شدن باید آدرس تصویر رو ذخیره کنی نه خود تصویر رو عزیز دل برادر آدرس رو تو بانک ذخیره کن و موقع فراخونی از آدرس بخون و نمایش بده سرعتشم بالاست . حجم دیتابیستم کم میشه در ضمن برای اینکه عکس ها هم از دسترسی خارج بشن میتونی کد کنی با برنامه و موقع خوندن دی کد کنی .

merlin425
پنج شنبه 11 مهر 1392, 00:17 صبح
نه یعنی چی ؟ الان اکسس بعدا می خواد SQL بشه ؟ همون اول باید رو SQL پیاده کنی مشکلات رو بررسی کنی .
برای کم حجم شدن باید آدرس تصویر رو ذخیره کنی نه خود تصویر رو عزیز دل برادر آدرس رو تو بانک ذخیره کن و موقع فراخونی از آدرس بخون و نمایش بده سرعتشم بالاست . حجم دیتابیستم کم میشه در ضمن برای اینکه عکس ها هم از دسترسی خارج بشن میتونی کد کنی با برنامه و موقع خوندن دی کد کنی .

اگه بخواد آدرس عکس رو ذخیره کنه یه مشکلی هست خوب یه سیستم اداریه نمیدونم به صورت طبیغی باید رو شبکه باشه که همه بهش دسترسی داشته باشن اگه ادرس تو بانک ذخیره بشه خود فایل میمونه روی Client بعد موقع خوندن فقط از همون سیستم قابل باز یابیه ولی اگه عکس تو بانک بره از همه جا میشه خوندش

این روش کد کردن و دی کد کردن دیگه چیه؟؟؟

as987498749874
پنج شنبه 11 مهر 1392, 12:53 عصر
بحث ادرس اصلا چون قبلا استفاده کردم دردسرش زیاده و جالب نیست
خیلی از نرم افزارهای رو دیدم مثل حسابداری اصناف که عکس کالاهایی که تعریف میکنی رو در بانکش ذخیره میکنه

الان دارم طراحی نرم افزار رو انجام میدم و بطور طبیعی هر جدول باید 30-40 بار تغییر کنه تا موقعی که تکمیل شد بعد از تکمیل شدن تمامی جدول ها رو در SQL پیاده می کنم و تمام

بحث عکس ها چون من مدارک و نامه ها قراره اسکن بشن و کلا زیاد استفاده نمیشن سرعت تفاوتی نداره
مشکل من اینکه که چرا وقتی یه فیلد رو بصورت OLE ایجاد و توش چیزی میریزی و حذف میکنی حجم زیاده میشه و بعد از حذف همون میمونه و تغییری نمیکنه یعنی اگه 100 مگ عکس بریزم و پاک کنم حجمش همون 100 مگ میمونه

کد کردن هم دردسر داره و اگه همه توی یه فایل کد بشه حجم چشمگیر بالا میره و توی پشتیبان گیری هم باید جداد گانه عمل بشه و شاید در حین دی کد کردن هم به مشکل بر بخوره
یه مشکل اساسی دیگه داره که اگه بخوای از بین 300 عکسی که کد شده 5 امین عکس پاک بشه تکلیف بقیه چی میشه و هزاران مسائل دیگه ....

mostafag
پنج شنبه 11 مهر 1392, 17:53 عصر
اینکاری که میگم رو شما یه تست بزن ببین حجم بانکت کم میشه یا نه!!
توی اکسس از منوی tools گزینه ی database utilitie و compact and repair database رو انتخاب کن.

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

همین گزینه های compact و اینارو یه سرچ بزنی پیدا میکنی که چطوری باید کدشو بنویسی ...

as987498749874
پنج شنبه 11 مهر 1392, 19:02 عصر
مرسی درست بود فقط آیا در SQL هم همین وضعیت رخ میدهد ؟

mostafag
پنج شنبه 11 مهر 1392, 19:29 عصر
توی SQL رو باید دوستان دیگه نظر بدن چون من نمیدونم ولی فکر نکنم اینطوری باشه. بازم بهتره بقیه دوستان اگر اطلاعات دارن پاسخ بدن.

merlin425
پنج شنبه 11 مهر 1392, 19:41 عصر
دوست عزیز شما اصلآ نگران همچین مسئله ای نباش شما مگه نمیگی بعدآ قرار پروژه رو ببری روی sql server من قبلآ همچین چیزی رو SQL Server پیاده کردم مشکلی پیش نمیاد این مسئله فکر میکنم فقط رو Access پیش میاد

vbhamed
پنج شنبه 18 مهر 1392, 08:45 صبح
سلام
ساختار بانك اطلاعاتي اكسس سگمنتي هست، يعني مثلا شما يك بانك و جدول با اكسس ايجاد مي‌كنيد حجمش يه مقداري ميشه و بعد وقتي تعداد محدودي ركورد اضافه مي‌كنيد سايز بانك تغيير نمي‌كنه بعدش دوباره يك مقدار به سايز اضافه ميشه و باز تا اضافه شدن تعدادي ركورد ديگه تغيير نمي‌كنه

سگمنت رو مي‌تونيد درست مثل صفحات دفتر در نظر بگيريد، در يك صفحه شروع به نوشتن مي‌كنيد، چه 1 خط چه 10 خط بازم همون يك صفحه هستش، اما اگر مثلا كاغذتون 20 خط توش جا بشه و بخواين 21 خط بنويسيد ديگه ميشه 2 صفحه و باز تا 40 خط همون 2 صفحه هستش و 41 خط ميشه 3 صفحه و ...

فرض كنيد 100 صفحه يعني 2000 خط اطلاعات در دفتر نوشتين، حالا اگر قرار باشه خط 30 تا 110 رو پاك كنيد (ميشه 80 خط يا 4 صفحه) چه طوري اينكار رو مي‌كنيد ؟ قاعدتا نمياين از صفحه 2 كه خط سي ام توش هست تا صفحه 100 رو دوباره بنويسيد كه اون 4 صفحه پاك بشه بلكه با پاك كن پاك مي‌كنيد يا خطشون مي‌زنيد

بانك اطلاعاتي هم همين كار رو مي‌كنه، فرض كنيد يك جدول داريم كه توش 1000000 ركورد وجود داره و قراره ركورد پنجم پاك بشه، اگر قرار باشه همون موقع 999995 ركورد بعدي جابجا بشن تا سايز بانك كوچيك بشه خيلي زمان مي‌بره بنابراين ركورد مورد نظر فقط به عنوان پاك شده علامت مي‌خوره و بعدا ميشه با دستوراتي مثل Compact يا Optimize Table و ... دوباره بانك رو از اول ايجاد كرد و فقط ركوردهاي واقعي و حذف نشده رو در بانك نوشت مثل اينكه واقعا اون دفترمون رو دوباره بنويسيم ولي خب فايل ديجيتالي خوبيش اينه كه فضاي هدر رفته دوباره قابل استفاده هست و مثل دفتر دور انداختني نيست