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

نام تاپیک: راهکار بهینه نویسی و سرعت در ارتباط با دیتابیس

  1. #1
    کاربر تازه وارد آواتار ihpled
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    تهران
    پست
    51

    Thumbs up راهکار بهینه نویسی و سرعت در ارتباط با دیتابیس

    سلام و درود

    من برنامه ای سالها پیش نوشتم که در اون از کامپوننتهای FireDoc که TFDConnection و TFDTable و TFDQuery استفاده کردم

    (دلفی - پلتفرم ویندوز - دیتابیس - MySQL - اتصال مستقیم به دیتابیس)

    در ابتدا Ado را کانکت میکنم و با هر مرحله ورود کاربرم به مرور تیبیلها هم کانکت میکنم و در مواقع لزوم از کوئری ها استفاده میکنم و بعد استفاده کلوزش میکنم

    ________

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

    ________

    حالا میخوام برنامه بهینه سازی کنم

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

    دنبال راهکارهای بیشتری هستم حتی خود کامپوننت های VCL که استفاده کردم هم سنگین کردن در استفاده از اونها هم باید تجدید نظر کنم
    مثلا متغیرهای محلی هم نیاز به فری کردن داره من اینو هیچ وقت انجام نمیدم

    چه اصولی رو شما رعایت میکنید؟ چه کاری در نحوه تنظبمات اتصال میشه انجام داد؟
    ممنون میشم اطلاعات خودتونو در زمینه اتصال + VCL + درگیر شدن حافظه و هر چیزی که به سبک نوشتار و تنظیمات اصولی میشه با ما در میان بگذارید

    سپاس

  2. #2

    نقل قول: راهکار بهینه نویسی و سرعت در ارتباط با دیتابیس

    سلام.
    من تجربیات خودمو می گم ببینید کدوم به درد شما می خوره:

    اول از همه استور پروسیجر کردن مهمه
    یکی از کارهایی که می شه کرد اینه که لود دی بی لوکاپ کمبو ها و سایر عناصر اینطوری رو بصورت ایجکس انجام بدید (روی وب مد نظرمه) یعنی مثلا 10 تاشو نشون کاربر بدید، اگر بین اونا نبود بیاد سرچ کنه و هربار ده تای دیگه رو ببینه که لود تایم فرم کلی پایین میاد
    نمایش دیتا روی گرید رو هم صفحه بندی کنید
    از ادوتیبل استفاده نکنید و به جاش از ادوکوئری با فیلتر های مناسب استفاده کنید
    هنگام لوپ زدن روی دیتاست حتما دیزیبل کنترل کنید
    از رکورد نو استفاده نکنید
    از یک کانکشن فعال استفاده کنید و تمام اشیا رو به اون مرتبط کنید
    هیچ وقت تراکنش سمت کلاینت ننویسید
    هنگام آپدیت کردن تیبل، حتما شرط بگذارید مثلا اگر فیلد اکتیو همه رو میخواهید ترو کنید، بگید اونایی که فالس هستن ترو بشن! همین یه نکته یک کوئری من رو از 20 دقیقه آورد رو 3 ثانیه
    برخی پارامتر های اولیه رو همون اول کار که لود کردید نگهش دارید تو یک سری رکورد ها یا حتی کلاینت دیتاست و مموری تیبل، مثل مشخصات شرکت، تقویم کاری، دسترسی های یوزر جاری و غیره
    ایندکس گذاری مناسب روی جداول فراموش نشه
    گاهی کانکت کردن های متوالی خیلی بیشتر طول می کشه تا نگه داشتن کانکشکن
    روی اشیای ادو در رویداد های OnCalc OnAfterScroll OnOpen و این طور چیزها تا می شه کد مرتبط با دی بی ننویسید
    روی شی دیتاسورس در رویدادهاش کلا چیزی ننویسید مگر اینکه خیلی لازم باشه
    اگر دیتا برای نمایش روی گرید نیست و پشت قضیه استفاده می شه و ردیف های زیادی هم داره، می تونید از حالت ForwardOnly استفاده کنید
    کلا از انتقال دیتای زیاد سمت کلاینت پرهیز کنید
    فقط فیلدهای مورد نیازتون رو در سلکت قرار بدید
    .
    .

    خیلی نکات ریز دیگه ای هم هست که تو کار درمیاد، نتیجه کار و تجربه هاتون رو زیر همین پست ادامه بدید
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  3. #3

    نقل قول: راهکار بهینه نویسی و سرعت در ارتباط با دیتابیس

    احسنت یوسف .


    مهمترین تجربه من این بود که اصلا از ado استفاده نکنم . بجاش firedac یا unidac

تاپیک های مشابه

  1. مشکل سرعت دیتابیس
    نوشته شده توسط abbasTaghizadeh در بخش مدیریت دیتابیس (Database Administration)
    پاسخ: 1
    آخرین پست: شنبه 07 آذر 1394, 00:30 صبح
  2. پاسخ: 32
    آخرین پست: دوشنبه 05 اسفند 1392, 18:29 عصر
  3. گرفتن تاریخ و ساعت از کاربر و ذخیره در دیتابیس
    نوشته شده توسط bftarane در بخش Access
    پاسخ: 0
    آخرین پست: شنبه 28 دی 1392, 13:30 عصر
  4. پاسخ: 2
    آخرین پست: یک شنبه 20 مرداد 1392, 22:44 عصر

برچسب های این تاپیک

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

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