PDA

View Full Version : مشکل با اکسس (ثبت روزانه 300 رکورد)



rouzbeh_ziafati
چهارشنبه 30 اردیبهشت 1388, 02:59 صبح
من برای شرکتی برنامه ای نوشتم و از بانک اکسس برای نگه داری اطلاعات استفاده کردم .
در روز تقریبا حدود 300 رکورد در یکی از جدول هام ثبت میشه .
بمرور زمان 100% با مشکل مواجه خواهم شد هم بخاطر پایین آمدن سرعت جستجو در بانک هم اینکه اکسس مطمئنا با محدود بودن ثبت تعداد رکورد مواجه است .
سوالی که از دوستان دارم اینکه در هر جدول حداکثر در اکسس چند رکورد میشه ثبت کرد ؟
اگر من بخواهم برنامه بطور اتوماتیک در پایان هر سال بانک جدیدی ایجاد کنه و ادامه اطلاعات رو در اون ذخیره کنه آیا راهکاری وجود داره ؟

xxxxx_xxxxx
چهارشنبه 30 اردیبهشت 1388, 07:43 صبح
سلام،
محدوديت هاي ديتابيس اكسس:


File size - 2 gigabytes minus the space needed for system objects

Number of objects in a database - 32,768

Modules (including forms and reports with the HasModule property set to True) - 1,000
Number of characters in an object name - 64
Number of characters in a password - 14
Number of characters in a user name or group name - 20
Number of concurrent users - 255

Table
Number of characters in a table name - 64
Number of characters in a field name - 64
Number of fields in a table - 255
Number of open tables - 2048; the actual number may be less because of tables opened internally by Microsoft Access
Table size - 2 gigabyte minus the space needed for the system objects
Number of characters in a Text field - 255
Number of characters in a Memo field - 65,535 when entering data through the user interface;
1 gigabyte of character storage when entering data programmatically
Size of an OLE Object field - 1 gigabyte
Number of indexes in a table - 32
Number of fields in an index - 10
Number of characters in a validation message - 255
Number of characters in a validation rule - 2,048
Number of characters in a table or field description - 255
Number of characters in a record (excluding Memo and OLE Object fields) when the UnicodeCompression property of the fields is set to Yes - 4,000
Number of characters in a field property setting - 255

Query
Number of enforced relationships - 32 per table minus the number of indexes that are on the table for fields or combinations of fields that are not involved in relationships
Number of tables in a query - 32
Number of fields in a recordset - 255
Recordset size -1 gigabyte
Sort limit - 255 characters in one or more fields
Number of levels of nested queries - 50
Number of characters in a cell in the query design grid - 1,024
Number of characters for a parameter in a parameter query - 255
Number of ANDs in a WHERE or HAVING clause - 99
Number of characters in an SQL statement approximately - 64,000

Form and report
Number of characters in a label - 2,048
Number of characters in a text box - 65,535
Form or report width - 22 in. (55.87 cm)
Section height - 22 in. (55.87 cm)
Height of all sections plus section headers - 200 in. (508 cm)
Number of levels of nested forms or reports - 7
Number of fields or expressions you can sort or group on in a report - 10
Number of headers and footers in a report - 1 report header/footer; 1 page header/footer; 10 group headers/footers
Number of printed pages in a report - 65,536
Number of controls and sections you can add over the lifetime of the form or report - 754
Number of characters in an SQL statement that serves as the Recordsource or Rowsource property of a form, report, or control (both .mdb and .adp) - 32,750
Macro
Number of actions in a macro - 999
Number of characters in a condition - 255
Number of characters in a comment - 255
Number of characters in an action argument - 255

HjSoft
چهارشنبه 30 اردیبهشت 1388, 09:00 صبح
کسی نمیدونه 2 گیگ در یک جدول با 8 تا فیلد حدودا چند رکورد میشه ؟

red11011
چهارشنبه 30 اردیبهشت 1388, 09:20 صبح
یک مقدار اطلاعات در بانکت بریز ببین چقدر حجمش زیاد میشه

M_P_1374
چهارشنبه 30 اردیبهشت 1388, 21:37 عصر
File size - 2 gigabytes minus the space needed for system objects

Number of objects in a database - 32,768

mpmsoft
چهارشنبه 30 اردیبهشت 1388, 21:45 عصر
چه نیازی هست که از access استفاده کردید ؟

بالا رفتن حجم بانک اطلاعاتی تنها به مقادیر که وارد می کنید مربوط نیست

در طراحی و انتخاب dataType ها و طول فیلدها دقت کنید
در انتخاب فیلدها جهت index دقت کنید

اول خیلی خوب بانک رو تجزیه و تحلیل کنید چراکه ممکن هست خیلی در کاهش حجم بانک تاثیر گذار باشه

در کل من جای شما بودم از SQL استفاده می کردم (چون می گید برای یه شرکت نوشتید پس بنابراین با کاربران عمومی طرف نیستید)

sh2007
پنج شنبه 31 اردیبهشت 1388, 12:47 عصر
به نظر من از پايگاه داده Sql استفاده بشه بهتره اما يه چيزي توي نرمال سازي پايگاه داده اينه كه درسته پايگاه رو تجزيه و تحليل مي كني ولي سرعت كار در هنگام فراخواني ركورد مهمه كه شما چند تا ركورد فراخواني كني خب مثلا براي جستجو اگه قرار 1 ميليون ركورد رو جستجو و نمايش بدي سرعت مياد پايين ضمنا كاربر هم نياز نداره شما مي تونيد با ترفندهاي مختلف مثلا 50 تا ركورد اول رو نمايش بدي و روشهاي ديگه هم هست

a_mohammadi_m
پنج شنبه 21 خرداد 1388, 21:31 عصر
با سلام
من بانكي داشتم كه بيشتر از 1.5 ميليون ركورد داشت كه هر ركورد حداقل 20 تا فيلد متني بلند داشت
كل بانك به 500MB نمي رسيد
فعلا نگران نباش

a_mohammadi_m
پنج شنبه 21 خرداد 1388, 21:44 عصر
توصيه من اينه كه براي هر محدوده زماني يك فايل بانك جدا داشته باشي مثلا هر سال يك بانك
البته به اطلاعات بانك و نوع مديريت و پردازش اطلاعات شما مربوطه
مثلا اگه لازمه اطلاعات چند سال رو باهم داشته باشي و محاسبه و پرينت و ... اونوقت كارت كمي مشكل ميشه

rouzbeh_ziafati
جمعه 12 تیر 1388, 00:13 صبح
ممنون از راهنمایی هاتون
خب من چون با محیط sql آشنایی ندارم از اکسس استفاده کردم .
این برنامه که نوشتم و روزانه 300 رکورد ثبت میکنه برنامه سیستم نوبت دهی به ماشین های باری هست .
تقریبا روزی 300 بار بارگیری داریم که باید بهشون نوبت بدیم و ساعت و تاریخ و شهر مقصد و نوع بار و اطلاعات دیگه ای در جدول نوبت ثبت بشه .
من قصد دارم که آخر هر سال مثلا 100000 هزار رکورد اول جدول نوبت رو از سیستم حذف کنم و در یک بانک دیگه نگه داری کنم . ( از جدول هایی که توی بانک دارم فقط جدول نوبت هست که روزانه اینطور افزایشی پر میشه و بقیه این مشکل رو ندارند)
که اون بانک پشتیبان دقیقا مثل بانک فعلی من باشه فقط فرقش در رکوردهای جدول نوبت باشه .
اگر بخوام چنین کاری بکنم نیاز هست تا برنامه آخر هر سال یک بانک پشتیبان درست بکنه مثلا با نام شماره سال جاری و تمام جدول های بانک فعلی رو اونجا بسازه و محتویات رو اونجا انتقال بده . «فقط محتویات جدول نوبت رو X تای اولش رو ببره اونجا و از جدول فعلی فقط X تای اول رو حذف کنه .»
آیا چنین کاری امکان پذیر هست ؟