تاثیر نحوه نوشتن پرس و جو بر سرعت اجرای آن در SQL Server
|
06-20-2014, 01:05 PM
(آخرین ویرایش در این ارسال: 06-21-2014 06:25 AM، توسط ali.)
ارسال: #1
|
|||
|
|||
تاثیر نحوه نوشتن پرس و جو بر سرعت اجرای آن در SQL Server
سلام. در این مطلب میخوام یک تجربه شخصی در مورد نحوه نوشتن پس و جو (Query) و تاثیر آن بر سرعت اجرا رو براتون توضیح بدم. این نکته رو هم خدمتتون عرض کنم که بهترین روش توی هر کاری اینه که مقاله ها و دست آوردهای جدید رو بخونین تا بتونین به بهترین نحوی کارهاتون رو انجام بدین. این ترفند بیشتر در رکوردهای تعداد بالا به درد می خوره. چون توی رکوردهای زیر هزار تا سرعت زیاد تفاوتی نمی کنه ولی در رکوردهای بالای ده هزار تا معمولا اگر روش مناسبی برای پرس و جو نوشتن انتخاب نکنین حتما منابع سیستم شما (Server) احتمالا زیاد از حد مشغول میشه.
فرض می کنیم سه جدول با عنوانهای زیر داریم:
کد: DECLARE @start_time DATETIME در روش دوم بدون استفاده از join ها ارتباط بین جدول ها را ایجاد می نمائیم. در حقیقت در این روش بدون ارتباط فیزیکی بین جدولها ، رکوردهای مرتبط در سایر جدولها را فراخوانی می نمائیم. لازم به ذکر است که نوشتن پرس و جو در روش دوم کمی نیاز به مهارت دارد. روش دوم زیاد پیشنهاد نمی شود. ولی در بعضی مواقع می تواند نجات دهنده باشد. دقت در روش دوم بسیار بیشتر است. کد: DECLARE @start_time DATETIME روش اول برای 5200 رکورد و 100 تکرار میانگین به دست آمده 183 میلی ثانیه روش دوم برای 5200 رکورد و 100 تکرار میانگین به دست آمده 109 میلی ثانیه نتیجه بدست آمده نشان می دهد که روش دوم منابع SQL Server را کمتر از روش اول (اسفاده از Join ها) درگیر می نماید. بنابراین در محلی که تعداد تراکنشها بیشتر است بهتر است از روش دوم استفاده شود ولی در تعداد تراکنشهای پایین روش اول مفیدتر است. در آزمایش دیگری که بر روی یک سیستم نسبتا قوی با پردازنده و RAM بالا انجام شد نتیجه کماکان به همان شرح بود. من نتایج رو درون یک فایل اکسل براتون گذاشتم. نمودار تراکنشها وقتی که تعداد رکوردها 100000 و تعداد واکشی حدودا 500 بار بود به شرح عکس می باشد. البته اعداد مربوط به آزمایشها داخل فایل اکسل موجود است و نمودار رو هم می توانید آنجا ملاحظه بفمرائین. هر چه تعداد رکوردها و تعداد واکشی ها بیشتر شود کارآیی Join ها کمتر می شود. لینک دانلود فایل اکسل ================================================== طراحی وب سایت پروژه های برنامه نویسی تجاری دانلود پروژه های ASP.NET وب سایتهای آماده به همراه توضیحات دانلود پروژه های سی شارپ و پایگاه داده SQL Server همراه توضیحات و مستندات دانلود پروژه های UML نمودار Usecase نمودار class نمودرا activity نمودار state chart نمودار DFD و . . . دانلود پروژه های حرفه ای پایگاه داده SQL Server به همراه مستندات و توضیحات پروژه های حرفه ای پایگاه داده Microsoft access به همراه مستندات و توضیحات دانلود پروژه های کارآفرینی دانلود گزارشهای کارآموزی کارورزی تمامی رشته های دانشگاهی قالب تمپلیت های آماده وب سایت ASP.NET به همراه Master page و دیتابیس برنامه های ایجاد گالری عکس آنلاین با ASP.NET و JQuery و اسلایدشو به همراه کد و دیتابیس SQL کاملا Open Source واکنشگرا و ساده به همراه پایگاه داده ================================================== |
|||
|
کاربرانِ درحال بازدید از این موضوع: 1 مهمان