سرعت برنامه من پايينه ؟ (Vb6)

amirnezhad

Member
سلام

اگه مي شه در مورد برنامه اي كه نوشتي بيشتر توضيح بده!

1) روي چه سيستم عاملي كار مي كنه؟
2) از چه ورژني از Access استفاده مي كني؟
3) ساختار كلي ديتابيس (Tableها و Fieldهاي هر Table) رو هم بگو

اينقدر تا به حالا با اين Access (ببخشيد) مزخرف كار كردم كه ...، شايد بتونم كمكت كنم
 

gootik

Member
amirnezhad گفت:
سلام

اگه مي شه در مورد برنامه اي كه نوشتي بيشتر توضيح بده!

1) روي چه سيستم عاملي كار مي كنه؟
2) از چه ورژني از Access استفاده مي كني؟
3) ساختار كلي ديتابيس (Tableها و Fieldهاي هر Table) رو هم بگو

اينقدر تا به حالا با اين Access (ببخشيد) مزخرف كار كردم كه ...، شايد بتونم كمكت كنم

bale.
agha shoma tozih bede barnamat chikar mikone ba access ?
 

giahchin

Member
سلام دوست عزيز،

جواب سوالات شما:
1) windows
2) Microsot Access 97 عربي
3) جواب اين سوال طولاني به نظر مي رسه ولي به طور خلاصه در يك بانك تعداد 6 جدول دارم
كه در يكي از آنها اطلاعات روزمره كاربر ذخيره ميشه و حجم بالايي هم داره و اطلاعات مابقي
جداول تقريباٌ ثابت است .
جدول اصلي شامل حدود 30 فيلد است كه اكثر آنها از نوع text هستند ولي فيلدهايي از نوع
تاريخ يا عددي هم استفاده شده است.

ضمناٌ يادآور مي شوم كه برنامه اصلي ام را در Visual Basic 6 نوشتم .
مرسي :wink:
 

amirnezhad

Member
giahchin گفت:
Microsot Access 97 عربي
به عنوان اولين پيشنهاد مي خواستم بدونم كه آيا مي تونيد Database برنامه را از Access 97 به Access 2000 تبديل كنيد يا نه؟

در ضمن يكي ديگه از مواردي كه ممكنه باعث بشه سرعت برنامه شما كمي بهتر بشه استفده از دو تا فانكش RepairDatabase و CompactDatabase است. پيشنهاد مي كنم اين دو تافانكشن رو توي برنامه استفاده كني تا مثلا توي اولين اجراي برنامه در هر روز يك بار اجرا بشن و يكم از داده هاي اضافي يا اطلاعات خراب شده رو از بين ببرن!

در ضمن منظور من از ساختار كلي ديتابيس (Tableها و Fieldهاي هر Table) در واقع مر بوط به همون Tableاي كه حجم اطلاعاتش زياده است و اگه لطف كني و بگي كه هر ركورد اين Table چه مقدار فضا اشغال مي كنه و همينطور تعداد ركوردهايي كه به طور متوسط توي هر روز اضافه مي شن چند تاست! شايد بتونم بيشتر كمكت كنم!
 

amirnezhad

Member
راستي يادم رفت بپرسم كه براي خوندن اطلاعات از برنامه از كد هاي برنامه نويسي استفاده مي كني يا از اشيايي مانند: DATA ؟
و اينكه آيا اطلاعات Tableها در هنگام خوندن با هم Join ميشن يا نه؟ چون گاهي اوقات با يه كم دستكاري توي Join Query مي شه كلي سرعت اجراي Query رو بالا برد!
 

giahchin

Member
با سلام،
در مورد پيشنهاد اول شما : من اين كار را كردم ولي ظاهراً Visual Basic 6 با بانكهاي
Access 2000 سازگار نيست و خلاصه برنامه من اجرا نشد.

در رابطه با استفاده از فانكشنهاي RepairDatabase و CompactDatabase به عرضتان
مي رسانم كه در برنامه ام استفاده نكردم ولي هر از چندي درون Access اين عمل را بطور
دستي روي بانكم انجام ميدم كه حجمش كمتر بشه . البته ممنون مي شم كه نحوه استفاده
از اين فانكشنها را در VB6 توضيح بدي كه بتونم در برنامه ام هم از اونها استفاده كنم.

Table اصلي برنامه من شامل:
33 فيلد از نوع Text كه طول مجموع فيلدها 994 كاركتر ،
5 فيلد از نوع Boolean و
1 فيلد از نوع Date است.

و اما سوال آخرتون : راستش من از هر دوحالت استفاده كردم يعني هم از ابزار Data و هم كدنويسي و ضمنا Table ها هم Join نميشند.

با تشكر از همكاريتان
هادي :wink:
 

amirnezhad

Member
سلام

در مورد اينكه گفته بودي كه VB 6 با Access 2000 همخواني ندارد بايد خدمتت عرض كنم كه در واقع من هنوز هيچ راهي براي استفاده از DATA براي خواندن از يك فايل Access 2000 پيدا نكردم ولي بدون توجه ( و استفاده ) از اين شيي هم مي توني با استفاده از ADODB تمام مشكلات مربوط به استفاده از Access 2000 رو حل كني. ( در اين مورد من يك Document خيلي خوب داشتم ولي حالا نمي دونم هنوز هم دارمش يا! اگه پيداش كردم حتما برات ميلش مي كنم)

در مورد اون دو تا فانكشن: روش استفاده از اونها به اين صورت است
کد:
RepairDatabase(Name as String)
CompactDatabase(SrcName as String,DstName as String,[DstLocale],[Options],[SrcLocale])

در مورد دستور اول همه چيز مشخصه فقط اينكه حتما بايد وقتي از اين دستور استفاده كني كه هيچ قسمتي از برنامه در حال استفاده از Database نباشد.
ولي براي استفاده از دومي بايد از يه فايل ديگه به عنوان TEMP فايل استفاده كني (DstName) و بعد از اون، جاي اون رو با Database اصلي عوض كني!

و در آخر هم اينكه ...
با اين حجم اطلاعاتي كه تو داري واقعا سخته كه راهي پيشنهاد كرد. فقط مي تونم توصيه كنم كه:
1) بگرد ببين جايي توي برنامه هست كه بشه تعداد دفعات ارتباط با Database رو توش كم كرد؟
2) ببين فرمي هست كه وقتي بسته ميشه هنوز هم با Database ارتباط داره يا نه (توي قسمتهايي كه از كدنويسي براي استفاده از بانك اطلاعاتي استفاده كردي)
3) ببين با استفاده از Index ها ميتوني سرعت رو بالا ببري يا نه؟ ( اگه موقع Search مشكل داري و از Index استفاده نمي كني فكر مي كنم با استفاده از Index سرعتت بيشتر بشه)

يك سوال ديگه: برنامه از همون اول كه اجرا مي شه كنده يا بعد از اينكه يكم باهاش كار مي كني كند ميشه؟

قربانت :wink:
 

جدیدترین ارسال ها

بالا