PDA

View Full Version : نوشتن برنامه یک query optimizer



Hamid.Kad
جمعه 18 آبان 1386, 17:25 عصر
سلام دوستان
فرض کنید هدف ما نوشتن یک برنامه است که با گرفتن یک دستور اسکیوال، بهینه شده اون رو به ما بده
من یه سری مطلب توی همین سایت پیدا کردم.مثلاً اینکه در نوشتن شرطها عبارات محدودکننده تر ،اول نوشته بشن و ...
ولی همه این روشها به نوعی نیازمند این هستند که از حجم اطلاعات و حتی مقادیر اونها باخبر باشیم(برای اینکه بدونیم کدوم شرطها محدودکننده تر هستند)
و یا در حالاتی که از join استفاده میکنیم، ترتیب قرار گرفتن اونها چجوری باشه؟ من توی سایتهای مختلف جستجو کردم و اکثراً استفاده از الگوریتمهایی مثل Ant Colony و PSO رو
پیشنهاد کرده بودند ولی من نتونستم رابطه مستقیمی بین این الگویتمها و چگونگی استفاده از اونها پیدا کنم. اگه از دوستان کسی اطلاعاتی راجع به این موارد دارند ممنون میشم کمک کنند.
تاکید میکنم که هدف ما نوشتن برنامه ای است که خودش کوئری رو بهینه کنه(مثل optimizer خود SqlServer). نه اینکه به کاربر بگیم کوئری رو اینجوری بنویس
ممنون از توجهتون

AminSobati
جمعه 18 آبان 1386, 23:40 عصر
دوست عزیزم،
بهینه بودن Query در مواردی ربط پیدا میکنه به وضعیت اطلاعات. بعنوان مثال، خود Query Optimizer همیشه اول Query شما رو با توجه به Statistics میسنجه و بعد الگوریتم بهینه رو انتخاب میکنه. اما در بسیاری از موارد هم حق با شماست، Query فی نفسه میتونه بهینه یا نابهینه نوشته بشه.
ولی نوشتن چنین برنامه ای کار ساده ای نیست. اگر شما فقط بتونین یک Parser برای Query بنویسین، واقعا کار بزرگی انجام دادین، چه برسه به Optimizer!

Hamid.Kad
شنبه 19 آبان 1386, 13:12 عصر
جناب ثباتی.ممنون از توجهتون. حق با شماست. نوشتن این برنامه کار راحتی نیست. ولی متاسفانه یا خوشبختانه بعنوان پرو‍ژه نهایی دانشگاه برای من در نظر گرفته شده. فکر میکنم مبحث جالبی باشه. در هر صورت خوشحال میشم اگه ذوستان بتونند کمکی بکنند.

Hamid.Kad
دوشنبه 21 آبان 1386, 14:39 عصر
دوستان اگه اطلاعاتی دارند خواهشاً دریغ نکنند که بدجور کارم گیره...