دانلود تحقیق Query optimizing بهینه سازی پرس و جو

Word 405 KB 17349 43
مشخص نشده مشخص نشده کامپیوتر - IT
قیمت قدیم:۲۴,۰۰۰ تومان
قیمت: ۱۹,۸۰۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • ما از query optimizing برای حل مسائل زیادی استفاده می کنیم.

    زمانی که یک query مطرح می شود، سیستم مدیریت بانک اطلاعاتی (DBMS ) می تواند از روش های مختلفی برای پردازش آن query و رسیدن به جواب استفاده کند.

    همه آن روش ها در نهایت یک نتیجه را تولید می کنند ولی از نظر هزینه های انجام شده مانند کل زمان مورد نیاز برای اجرا متفاوت اند.

    چه روشی حداقل زمان را برای اجرا نیاز دارد؟
    در یک DBMS ، بهینه سازی query بسیار ضروری می باشد.

    هزینه انجام دو selection مختلف می تواند بسیار متفاوت باشد.

    برای مثال به شمای بانک اطلاعاتی زیر که ممکن است در طی این بخش از آن استفاده شود توجه نمایید :
    emp (name,age,sal,dno)
    dept (dno,dname,floor,budget,mgr,ano )
    acnt ( ano,type,balance,bno )
    bank ( bno,bname,address )

    به Query ساده زیر توجه کنید :
    Select name, floor
    From emp, dept
    Where emp.dno=dept.dno and sal>100k

    ویژگیهای زیر را برای محتوا، ساختار و محیط هنگام اجرا در نظر بگیرید :
    ویژگیهای زیر را برای محتوا، ساختار و محیط هنگام اجرا در نظر بگیرید : به سه روش متفاوت زیر توجه کنید : P1 : از طریق B + - tree تمام tuple های emp را که شرط emp.sal را ارضا می کنند پیدا می کنیم.

    برای هر کدام، از hashing index برای یافتن tuple های مناسب dept استفاده می کنیم.

    ( حلقه های تو در تو، استفاده از index روی هر دو رابطه) P2 : برای هر صفحه از dept، کل رابطه emp اسکن می شود.

    اگر مقدار dno یک tuple از emp با مقدار tuple روی یک صفحه dept برابر باشد و شرط انتخاب روی emp.sal را ارضا نماید، زوج tuple emp – dept در نتیجه ظاهر می شود.

    ( حلقه های تودرتو در سطح صفحه، بدون استفاده از index ) P3 : به ازای هر dept tuple ، کل رابطه emp اسکن شده و تمام زوج های emp – dept tuple ذخیره می شوند.

    سپس، این مجموعه از زوج ها اسکن می شوند و ، به ازای هر کدام، بررسی می شود آیا هر دو dno یک مقدار دارند و آیا شرط روی emp.sal را ارضا می کنند یا خیر.

    (ساخت عرضی tuple ها، با اسکن ثانویه برای تست پیوند و اتصال) محاسبه هزینه مورد انتظار I/O این سه طرح نشان می دهد که چه تفاوت بزرگی از نظر کارایی میان این سه روش وجود دارد در صورتی که هر سه یک نتیجه را تولید می کنند.

    P1 32/0 ثانبه، p2 کمی بیشتر از یک ساعت و p3 بیشتر از یک روز کامل نیاز دارد.

    Query optimizer تمام انتخاب های ممکن را بررسی می کند، به همین دلیل انتخاب p1 برای پردازش query نباید خیلی سخت باشد.

    مسیری که یک query از DBMS تا رسیدن به جواب طی می کند در شکل 1 نشان داده شده است.

    ماژولهای سیستمی که از طریق آن حرکت می کند عملکردهای زیر را دارد : Query parser اعتبار query را بررسی می کند و سپس آن را به یک شکل داخلی ترجمه می کند، معمولاً به صورت یک عبارت calculus یا چیزی معادل آن.

    Query optimizer همه عبارات جبری را که معادل query داده شده است تست کرده و یکی را که به نظر می رسد ارزانتر باشد انتخاب می کند.

    Code generator یا مفسر، طرح تولید شده به وسیله optimizer را به فراخوانی پردازشگر query تبدیل می کند.

    پردازشگر query به صورت واقعی query را اجرا می کند.

    پرس و جو ها از طریق کاربران فعال و یا برنامه هایی که به زبان های همه منظوره ای که پرس و جوها را به صورت مخفی درون خود دارند ( مانند c یا c++ ، فرترن یا PL-1 ) ، نوشته شده اند و برای DBMS ارسال می شوند.

    یک پرس و جوی فعال در مسیری که در شکل 1 نشان داده شده است حرکت می کند.

    به عبارت دیگر، یک پرس و جوی مخفی در زمانیکه برنامه ای که در آن مخفی است کامپایل می شود ( زمان کامپایل ) بین سه مرحله اول تنها یکبار عبور می کند.

    بنابراین، مستقل از تعداد دفعاتی که یک query مخفی نیاز دارد که اجرا شود، بهینه سازی تکرار نمی شود مگر اینکه بهنگام سازی بانک اطلاعاتی طرح دسترسی را غیر معتبر کند ( مانند حذف ایندکس )، یا بهینه سازی فرعی به صورت بهینه سازی بالا ( تغییرات گسترده در محتوای بانک اطلاعاتی ).

    هیچ تفاوت واقعی بین بیهنه سازی فعال یا پرس و جوهای مخفی نیست، بنابراین در این فصل تمایزی بین آنها قائل نمی شویم.

    در زمینه بانک اطلاعاتی، محدوده بهینه سازی پرس و جوها بسیار وسیع است.

    این مورد از زوایای مختلفی می تواند مطالعه و بررسی شود، که در هر مورد به بخش های متعددی تقسیم می شود.

    هدف این فصل این است که مشکل اصلی در بهینه سازی پرس و جوها و راه حل های آنها است.

    به صورت خاص، ما روی یک پرس و جوی SQL ساده با تنها یک اتصال بولی and ( همچنین به عنوان پرس و جوی ربط دهنده، پرس و جوی select-project-join و یا عبارات غیر بازگشتی horn شناخته می شوند) در یک DBMS رابطه ای تمرکز می کنیم، فرض کنید که در زمان کامپایل دانش کاملی از محیط زمان اجرا وجود دارد.

    همچنین، ما سعی نخواهیم کرد از ادبیات کاملی استفاده کنیم، در بیشتر مواقع تنها به تعدادی مثال ارجاع می دهیم.

    باقیمانده این فصل به صورت زیر خواهد بود.

    بخش 2 یک معماری پیمانه ای برای یک query optimizer ارائه می دهد و نقش هر ماژول را توضیح می دهد.

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

    بخش 4 روی برنامه نویسی داینامیک استراتژی جستجو که به وسیله query optimizer تجاری استفاده شده است و به صورت واضح استراتژی های قابل انتخاب ارائه شده را تشریح می کند، متمرکز شده است.

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

    بخش 6 بهینه سازی پرس و جو ها را در محیط های غیر متمرکز مانند DBMS های موازی و توزیع شده، مورد بحث قرار می دهد.

    در نهایت، بخش 7 خلاصه ای از مطالب فصل و سؤالاتی را که در رابطه با بهینه سازی پرس و جوها بدون جواب هستند مطرح می کند.

    2.

    معماری Query optimizer 2.1.

    معماری کلی در این بخش، ما به صورت تجریدی در مورد فرایند بهینه سازی پرس و جوها در DBMS صحبت خواهیم کرد.

    یک بانک اطلاعاتی و پرس و جویی روی آن داده شده است، طرح های اجرایی متعددی وجود دارد که می توان برای یافتن جواب پرس و جو به کار برد.

    در ابتدا، همه گزینه ها را باید در نظر گرفت، در نهایت یکی که بهترین کارایی را دارد انتخاب خواهد شد.

    به صورت تجریدی فرایند تولید و تست این گزینه ها در شکل 2 نشان داده شده است، که در اصل معماری پیمانه ای یک query optimizer است.

    هرچند یک نفر می تواند یک optimizer را بر اساس این معماری بسازد ولی در سیستم های واقعی، پیمانه های نشان داده شده، همین حدود مشخص شده در شکل 2 را ندارند.

    بر اساس شکل 2، کل فرایند بهینه سازی پرس و جو شامل دو مرحله است : بازنویسی و طرح ریزی.

    در مرحله اول تنها یک ماژول وجود دارد، Rewrite ، و بقیه ماژول ها در مرحله دوم قرار دارند.

    عملکرد هر یک از ماژول های شکل 2 به صورت زیر تحلیل می شود.

    2.2.

    عملکرد ماژول ها Rewiter : این ماژول روی یک پرس و جوی داده شده به کار می رود و پرس و جوهای معادلی را که مؤثرتر هستند تولید می کنند، مانند جایگزینی view ها با تعاریفشان، باز کردن یک پرس و جوی فشرده و غیره.

    انتقالی که به وسیله Rewiter انجام می شود تنها به نحوه تعاریف مانند استاتیک و ویژگیهای پرس و جوها وابسته است.

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

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

    ماژول طرح ریزی : این ماژول، ماژول اصلی مرحله سفارش است.

    این ماژول همه طرح های قابل اجرا برای هر یک از پرس و جوهای تولید شده در مرحله قبل را آزمایش می کند و در نهایت طرحی که برای تولید جواب پرس و جوی اصلی از همه ارزان تر است انتخاب می شود.

    این ماژول از یک استراتژی جستجو استفاده می کند، که فضای طرح های قابل اجرا را در یک شکل جزئی آزمایش می کند.

    این فضا به وسیله دو ماژول دیگر optimizer تعیین شده است، فضای جبری و فضای متد – ساختار.

    برای بیشتر بخش ها، این دو ماژول و استراتژی جستجو، هزینه را تعیین می کند مانند زمان اجرای خود optimizer ، که باید تا حد امکان پایین باشد.

    اجرای طرح ها که به وسیله planner آزمایش شده اند بر مبنای تخمین هزینه های آنها تا اینکه ارزان ترین انتخاب شود.

    این هزینه ها به وسیله دو ماژول آخر optimizer ، یعنی ماژول هزینه و تخمین گر اندازه توزیع شده انجام می شود.

    ماژول فضای جبری : این ماژول عمل سفارشات اجرا شده ای را که به ازای هر پرس و جوی ارسال شده مورد توجه طراح ( برنامه ریز) هستند مشخص می کند.

    این مجموعه عمل ها، جواب یکسانی برای پرس و جوها تولید می کنند، اما معمولاً در میزان کارایی متفاوت اند.

    آنها معمولاً در جبر رابطه ای به شکل فرمول و یا درخت ارائه می شوند.

    به خاطر اینکه ماهیت اشیایی که به وسیله این ماژول تولید و به برنامه ریز ارسال می شوند الگوریتمی است، مرحله طرح ریزی کلی به عنوان عملی در سطح روال شناخه می شود.

    فضای متد – ساختار : این ماژول انتخاب های پیاده سازی که برای اجرای هر یک مجموعه سفارشات عمل های مشخص شده به وسیله فضای جبری موجود است را مشخص می کند.

    این انتخاب وابسته به تعداد متدهای پیوند (join) است که به ازای هر پیوند وجود دارد (مانند حلقه ای ، تودرتو، merge scan و پیوند (hash، اگر ساختمان داده ها را که بر مبنای جهش، اگر زمانیکه کپی ها حذف می شوند و یا سایر ویژگیهای پیاده سازی از این دسته که از قبل به وسیله DMBS تعیین شده اند .

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

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

    ماژول هزینه : این ماژول فرمول های ریاضی را که برای تخمین هزینه اجرای طرح ها به کار می رود مشخص می کند.

    برای هر متد پیوند متفاوت، به ازای هر نوع دسترسی متفاوت و به صورت کلی برای هر یک از مراحل که در اجرای یک برنامه وجود دارد، فرمولی وجود دارد که هزینه را تعیین می کند.

    میزان پیچیدگی خیلی از این مراحل، بسیاری از فرمول ها وابسته به مفروضاتی مانند مدیریت بافرها، تداخل دیسک و CPU و ورودی/خروجی متوالی هستند.

    یکی از پارامترهای مهم ورودی اندازه بافری است که استفاده می شود، اندازه ارتباطات یا شاخص دسترسی ها و امکان توزیع داده ها در این روابط.

    به ازای هر پرس و جو، مورد اول به وسیله DBMS محاسبه می شود دو مورد بعدی به وسیله تخمین گر میزان توزیع تخمین زده می شود.

    تخمین گر اندازه توزیع : این ماژول مشخص می کند که چطور اندازه های ( و امکان توزیع مقادیر خصوصیات ) ارتباطات و شاخص های پایگاه داده تخمین زده می شود.

    همانطور که در بالا یادآوری شد، این تخمین مورد نیاز ماژول هزینه است.

    همچنین روش تخمینی خاصی که در این ماژول به کار می رود شکل آماری را که برای نگهداری در کاتالوگ هر پایگاه داده مورد نیاز است تعیین می کند.

    2.3.

    تمرکز روی توضیحات از شش ماژولی که در شکل 2 وجود داشت سه ماژول به صورت جزئی در این بخش به صورت تفصیلی و جزئی مورد بحث قرار نمی گیرند؛ Rewiter ، فضای ساختار – متد و مدل هزینه.

    Rewiter ماژولی است که در برخی از DBMS های تجاری استفاده می شود ( DB2 client/server و Illustra )، اگر چه در همه آنها به کار نمی رود.

    بیشتر

  • مقدمه 1
    معماری query optimizing 5
    معماری کلی 5
    عملکرد ماژول 6
    تمرکز روی توضیحات 8 فضای جبری 8
    Planner 13
    الگوریتم های برنامه نویسی داینامیک 13
    الگوریتم های تصادفی 18
    سایر استراتژیهای جستجو 19
    تخمین زننده اندازه توزیع 21
    هیستوگرام 22
    سایر تکنیک ها 24
    محیط های غیر متمرکز 24
    پایگاه داده های موازی 24
    پایگاه داده ای توزیع شده 25
    خلاصه 26
    منابع و مأخذ 27

تحقیق دانش آموزی در مورد دانلود تحقیق Query optimizing بهینه سازی پرس و جو, مقاله دانشجویی با موضوع دانلود تحقیق Query optimizing بهینه سازی پرس و جو, پروژه دانشجویی درباره دانلود تحقیق Query optimizing بهینه سازی پرس و جو

این تحقیق ما به تکنیک‌های بکار رفته توسط DMBS برای پردازش، بهینه‌سازی و اجرای پرس و جوهای سطح بالا می‌پردازیم. پرس و جوی بیان شده در زبان پرس‌و جوی سطح بالا مثل SQL ابتدا باید پویش و تجزیه . معتبر شود. پویشگر (اسکنر) علامت هر زبان، مثل لغات کلیدی SQL، اساس ویژگی، و اساس رابطه، را در متن پرس و جو شناسایی می‌کند،‌ در عوض تجربه کننده، ساختار دستوری پرس و جو را برای تعیین اینکه آیا ...

در این فصل، به تکنیک‌های بکار رفته توسط DMBS برای پردازش، بهینه‌سازی و اجرای پرس و جو های سطح بالا می‌پردازیم. پرس و جوی بیان شده در زبان پرس‌و جوی سطح بالا مثل SQL ابتدا باید پویش و تجزیه . معتبر شود. پویشگر (اسکنر) علامت هر زبان، مثل لغات کلیدی SQL، اساس ویژگی، و اساس رابطه، را در متن پرس و جو شناسایی می‌کند،‌ در عوض تجربه کننده، ساختار دستوری پرس و جو را برای تعیین اینکه آیا ...

در اواسط دهه 1980، با نزول قیمت DRAM، این ایده مطرح شد که کامپیوترهای آتی با داشتن حافظه اصلی با ظرفیت بالا، می توانند بسیاری از پایگاه داده ها را درحافظه اصلی داشته باشند. در این شرایط می توان همه I/O ها (که بسیار هزینه بر می باشند) را از پردازش DBMS حذف نمود. بنابراین معماری DBMS دستخوش تغییرات جدی می شود و در یک MAIN MEMORY DBMS(MMDBMS)، مدیریت I/O دیگر نقشی نخواهد داشت. نکته ...

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

برای استفاده مفیدتر از این مقاله، توصیه می گردد، مقاله معماری برنامه های مبتنی بر داده را در ابتدا مطالعه نمائید . ADO.NET ، نسل جدیدی از ADO شرکت ماکروسافت است . نسخه ADO ، با استفاده از مجموعه ای اشیاء ActiveX Data Object طراحی و پیاده سازی شده بود. ADO.NET گرچه در سطح ارائه پتانسیل های لازم در برخی موارد دارای شباهت هائی با ADO است ولی از نظر مدل برنامه نویسی دارای ساختاری ...

بهینه‌ ساز پرس‌ و جو از اهمیت زیادی برای پایگاه داده ارتباطی برخوردار است، مخصوصا برای اجرای دستورات پیچیده SQL . یک بهینه ساز پرس‌وجو بهترین استراتژی بر اجرای هر پرس‌وجو را تعیین می‌کند. بهینه‌ساز پرس و جو به عنوان مثال انتخاب می‌کند آیا از شاخص برای یک پرس‌وجو مشخص استفاده کند یا نه، وکدام تکنیک الحاق هنگامی که جداول با هم الحاق می‌شوند استفاده شود. این تصمیم تاثیری بسیار ...

- مقدمه 1-1 چرا بهینه سازی انرژی؟ چشم انداز 2005 انرژی جهانی که توسط آژانس بین المللی تهیه می شود پیش بینی می کند که در نبود خط مشی جدید دولت، احتیاجات انرژی جهان سرسختانه افزایش پیدا خواهد کرد. در طرح کردن راه هایی که با این احتیاجات فزاینده مقابله بکند دولت ها مجبوراند که برای ایمنی انرژی و خسارت های محیطی مبارزه کنند. هر دوی این ها متصل به مصرف سوخت های فسیلی اند. بهینه سازی ...

مراجع‌را می‌توان به عنوان یک ترازوی خوب برای مقایسه روشهای مختلف بکار برد. بعنوان مثال: مراجع استراتژی، انتخاب و جایگزینی را بکار گرفتند که با r BOA ها یکسانند. در‌بین الگوریتم‌های متنوع‌دانش سرپرستی برای انجام دادن مدلهای مخلوط، دسته بندی یک کاندیدای مناسب برحسب بازدهی محاسباتی دیده شده است. بطور کلی EDA ها یک تقریب تقسیمی را بکار می‌گیرند که تلاش می‌کند یک مجموعه از ...

چکیده پیش‌آگاهی از وقوع بیماری بلاچ برگی گندم ناشی از Septoria tritici در تنظیم و طراحی دقیق مبارزه شیمیایی بسیار حائز اهمیت است. یکی از روشهای شناسایی این بیماری پیش از بروز علایم، استفاده از فن‌آوری ایمنی‌سنجی است. در این تحقیق اهمیت بهره‌گیری از این فن‌آوری در تعیین نوع، مقدار مصرف قارچکش و زمان سمپاشی مورد بررسی قرار گرفته است. برای این منظور در 44 ظرف کاشت، گندم رقم روشن ...

چکیده: سیستم GLITS، یک سیستم آموزش دهنده هوشمند با یادگیری تدریجی است که دارای 3 عامل یاد دهنده ، یادگیرنده و مشکل‌ساز است. عامل یاد دهنده و یادگیرنده هر کدام دارای 5 لایه (زیر سیستم) می‌باشند. لایه‌های یاد دهنده به نام‌های ناظر، ایجاد انگیزش، فرضیه‌ها و تولید مدلهای برنامه می‌باشند. لایه‌های یادگیرنده به نام‌های وضعیتی انعکاسی ، شناختی، معیارها و سنجش، برنامه‌ریزی و همینطور ...

ثبت سفارش